atwiki-logo
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • ページ操作履歴
  • ページ一覧
    • ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ(更新順)
    • このページの全コメント一覧
    • このウィキの全コメント一覧
    • おまかせページ移動
  • RSS
    • このウィキの更新情報RSS
    • このウィキ新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡(不具合、障害など)
ページ検索 メニュー
OIT Archive
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
ページ一覧
OIT Archive
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
ページ一覧
OIT Archive
ページ検索 メニュー
  • 新規作成
  • 編集する
  • 登録/ログイン
  • 管理メニュー
管理メニュー
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • ページ操作履歴
  • ページ一覧
    • このウィキの全ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ一覧(更新順)
    • このページの全コメント一覧
    • このウィキの全コメント一覧
    • おまかせページ移動
  • RSS
    • このwikiの更新情報RSS
    • このwikiの新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡する(不具合、障害など)
  • atwiki
  • OIT Archive
  • C演習I 12

OIT Archive

C演習I 12

最終更新:2011年05月18日 00:47

oit-archive

- view
管理者のみ編集可
workc1.c
  1. #include <stdio.h>
  2. #define MEIJI_GANNEN 1868
  3. #define TAISHO_GANNEN 1912
  4. #define SHOWA_GANNEN 1926
  5. #define HEISEI_GANNEN 1989
  6.  
  7. int main(void){
  8. int year, gen, n;
  9.  
  10. printf("明治 1 大正 2 昭和 3 平成 4:");
  11. scanf("%d", &gen);
  12.  
  13. if( gen == 1 ){
  14. printf("明治 ");
  15. year = MEIJI_GANNEN;
  16. } else if( gen == 2 ){
  17. printf("大正 ");
  18. year = TAISHO_GANNEN;
  19. } else if( gen == 3 ){
  20. printf("昭和 ");
  21. year = SHOWA_GANNEN;
  22. } else if( gen == 4 ){
  23. printf("平成 ");
  24. year = HEISEI_GANNEN;
  25. } else {
  26. printf("元号が正しくありません。\n");
  27. return 0;
  28. }
  29.  
  30. printf("何年ですか?");
  31. scanf("%d", &n);
  32. year = year + (n-1);
  33. printf("西暦 %d 年です。\n", year);
  34.  
  35. return 0;
  36. }
  37.  

workc2.c
  1. #include <stdio.h>
  2.  
  3. int main(void) {
  4. int n;
  5. int w; /* 前回の1の位の値を格納 */
  6. int flag; /* 1=昇順である, 0=昇順でない */
  7.  
  8. printf("数値を入力してください:");
  9. scanf("%d", &n);
  10.  
  11. if(n < 0){
  12. printf("負の値です。\n");
  13. return 0;
  14. }
  15.  
  16. flag = 1;
  17. while( n > 0 && flag != 0){
  18. w = n % 10;
  19. n = n / 10;
  20. if( n % 10 > w ){ /* n%10‥今の1の位, w‥前の1の位 */
  21. flag = 0;
  22. }
  23. }
  24.  
  25. if(flag == 1){
  26. printf("数字は昇順の並びです。\n");
  27. } else {
  28. printf("数字は昇順の並びではありません。\n");
  29. }
  30.  
  31. return 0;
  32. }
  33.  

workc3.c
  1. #include <stdio.h>
  2.  
  3. #define MAXARRAY 8
  4.  
  5. int main(void){
  6.  
  7. int i, j, mx, tmp;
  8. int data[] = {3, 4, 5, 3, 9 , 2, 7, 1};
  9.  
  10. printf("ソート前\n");
  11. for(i=0; i < MAXARRAY; i++){
  12. printf("%d ",data[i]);
  13. }
  14. printf("\n");
  15.  
  16. for(i=0;i < MAXARRAY -1; i++){
  17. mx = i;
  18. for( j=i+1; j < MAXARRAY; j++){
  19. if( data[mx] < data[j] ){
  20. mx = j;
  21. }
  22. }
  23. tmp = data[i];
  24. data[i] = data[mx];
  25. data[mx] = tmp;
  26. }
  27.  
  28. printf("ソート後\n");
  29. for(i=0; i < MAXARRAY; i++){
  30. printf("%d ",data[i]);
  31. }
  32. printf("\n");
  33.  
  34. return 0;
  35. }
  36.  

workc4.c
  1. #include <stdio.h>
  2.  
  3. #define MAXARRAY 8
  4.  
  5. void printArray( int d[], int n){
  6. int i;
  7. for(i=0; i < n; i++){
  8. printf("%d ",d[i]);
  9. }
  10. printf("\n");
  11. }
  12.  
  13. int selectionDecendSort(int d[], int n){
  14. int i,j,mx,tmp;
  15. int count=0;
  16. for(i=0;i < n -1; i++){
  17. mx = i;
  18. for( j=i+1; j < n; j++){
  19. if( d[mx] < d[j] ){
  20. mx = j;
  21. count++;
  22. }
  23. }
  24. tmp = d[i];
  25. d[i] = d[mx];
  26. d[mx] = tmp;
  27. }
  28. return count;
  29. }
  30.  
  31. int main(void){
  32. int i;
  33. int c;
  34. int data[MAXARRAY];
  35.  
  36. printf("配列要素を入力してください:\n");
  37. for( i=0; i < MAXARRAY; i++){
  38. scanf("%d", &data[i]);
  39. }
  40.  
  41. printf("ソート前\n");
  42. printArray(data, MAXARRAY);
  43.  
  44. c = selectionDecendSort(data, MAXARRAY);
  45.  
  46. printf("ソート後\n");
  47. printArray(data, MAXARRAY);
  48. printf("最大値交換回数 = %d\n", c);
  49.  
  50. return 0;
  51. }
  52.  

workc5.c
  1. #include <stdio.h>
  2.  
  3. #define BATCH 350
  4.  
  5. int main(void){
  6. int total = 0;
  7. int c, n, r;
  8. int nokori;
  9.  
  10. printf("1袋あたりの量:");
  11. scanf("%d", &n);
  12.  
  13. c = 0;
  14. while( total+n <= BATCH ){
  15. total = total + n;
  16. c++;
  17. }
  18. r = BATCH - total;
  19.  
  20. if( r == 0) {
  21. printf("1:原材料 %d 袋を取り出します。\n", c);
  22. printf("2:すべて投入します。\n");
  23. } else {
  24. printf("1:原材料 %d 袋を取り出します。\n", c+1 );
  25. printf("2:%d 袋は全て投入し、最後の1袋は %d gだけ量って投入します。\n", c , r);
  26. nokori = n - r;
  27. printf("3:原材料の残りは、%d gとなります。\n", nokori);
  28. }
  29.  
  30. return 0;
  31. }
  32.  

workc6.c
  1. #include <stdio.h>
  2.  
  3. #define BATCH 350
  4.  
  5. int main(void){
  6.  
  7. int total = 0;
  8. int c, n, r, m,i;
  9. int nokori;
  10.  
  11. printf("1袋あたりの量 : ");
  12. scanf("%d", &n);
  13. printf("繰り返し数 : ");
  14. scanf("%d", &m);
  15.  
  16. c = 0;
  17. for( i = 0; i < m ; i++){
  18. printf("<%d回目>\n",i+1);
  19. while( total+n <= BATCH ){
  20. total += n;
  21. c++;
  22. }
  23.  
  24. r = BATCH - total;
  25.  
  26. if(r == 0) {
  27. printf("1:原材料 %d 袋を取り出します。\n", c);
  28. printf("2:すべて投入します。\n");
  29. nokori = 0;
  30. }else{
  31. printf("1:原材料 %d 袋を取り出します。\n", c+1 );
  32. printf("2:%d 袋は全て投入し、最後の1袋は %d gだけ量って投入します。\n", c , r);
  33. nokori = n - r;
  34. printf("3:原材料の残りは、%d gとなります。\n", nokori);
  35. }
  36. total = nokori;
  37. c = 0;
  38. }
  39.  
  40. return 0;
  41. }
  42.  

workc7.c
  1. #include <stdio.h>
  2.  
  3. #define BATCH 350
  4.  
  5. int calcInput(int nokori1, int n1){
  6. int c1 = 0;
  7. while( nokori1 + n1 <= BATCH ){
  8. nokori1 += n1;
  9. c1++;
  10. }
  11. return c1;
  12. }
  13.  
  14. int printMSG(int n2, int r2, int c2){
  15. int rest;
  16. if( r2 == 0) {
  17. printf("1:原材料 %d 袋を取り出します。\n", c2);
  18. printf("2:すべて投入します。\n");
  19. rest = 0;
  20. } else {
  21. printf("1:原材料 %d 袋を取り出します。\n", c2+1);
  22. printf("2:%d 袋は全て投入し、最後の1袋は %d gだけ量って投入します。\n", c2 , r2);
  23. rest = n2 - r2;
  24. printf("3:原材料の残りは、%d gとなります。\n", rest);
  25. }
  26. return rest;
  27. }
  28.  
  29. int main(void){
  30. int nokori = 0;
  31. int c, n, r, m,i;
  32.  
  33. printf("1袋あたりの量 : ");
  34. scanf("%d", &n);
  35. printf("繰り返し数 : ");
  36. scanf("%d", &m);
  37.  
  38. for( i = 0; i < m ; i++){
  39. printf("<%d回目>\n",i+1);
  40. c = calcInput(nokori, n);
  41. nokori = nokori + n * c;
  42. r = BATCH - nokori;
  43. nokori = printMSG(n, r, c);
  44. }
  45.  
  46. return 0;
  47. }
  48.  

workc8.c
  1. #include <stdio.h>
  2.  
  3. #define BATCH 350
  4. #define PACKSUU 3 /*価格 内容量の組合せ数*/
  5.  
  6. int calcInput(int nokori1, int n1){
  7. int c1 = 0;
  8. while( nokori1 + n1 <= BATCH ){
  9. nokori1 += n1;
  10. c1++;
  11. }
  12.  
  13. return c1;
  14. }
  15.  
  16. int main(void) {
  17. int c, r0,r1, m,i,j;
  18. int totalp;
  19.  
  20. int plist[PACKSUU] = { 315, 420, 730 }; /* 価格表*/
  21. int vlist[PACKSUU]= { 175, 250, 500 }; /* 内容量*/
  22. int tlist[PACKSUU];
  23. int minprice=0, minpack=0;
  24.  
  25. printf("繰り返し数 : ");
  26. scanf("%d", &m);
  27.  
  28. for( j = 0; j < PACKSUU; j++){
  29. r0 =0; /* 前回の余り量 r0 今回の実行後の余り量 r1とする*/
  30. totalp = 0; /* 費用の累積額の初期化*/
  31. for( i = 0; i < m ; i++){
  32.  
  33. c = calcInput(r0, vlist[j]); /* 袋まるごとの投入量計算*/
  34.  
  35. /* 部分的に投入する場合の量の計算 */
  36. r1=BATCH - (vlist[j] * c + r0) ;
  37.  
  38. if(r1 == 0){
  39. r0 = 0; /* 余りが無い*/
  40. totalp = totalp + c * plist[j];
  41. }else {
  42. if( r0 <= BATCH ){
  43. r0 = vlist[j] - r1; /* 余りがあるが最後の袋の*/
  44. totalp = totalp + (c+1) * plist[j]; /* 投入数が1増える*/
  45. }else{
  46. r0 = r0 - BATCH; /* 前回の残りで足りる場合。*/
  47. }
  48. }
  49. }
  50.  
  51. tlist[j]=totalp; /* totalp には使った袋の分の費用が入っている*/
  52.  
  53. if(j==0 || minprice > totalp){ /*最小条件の更新*/
  54. minprice = totalp;
  55. minpack = j;
  56. }
  57. }
  58.  
  59. for( j = 0; j < PACKSUU; j++){
  60. printf("1袋 %d g では%d 円掛かります。\n",vlist[j], tlist[j]);
  61. }
  62. printf("よって1袋 %d gが最もお得です。\n",vlist[minpack]);
  63.  
  64. return 0;
  65. }
  66.  
「C演習I 12」をウィキ内検索
LINE
シェア
Tweet
OIT Archive
記事メニュー

MENU

  • TOP
+ C演習I
C演習I
  • 01
  • 02
  • 03
  • 04
  • 05
  • 06
  • 07
  • 08
  • 09
  • 10
  • 11
  • 12
  • 13
  • 14

+ Java
Java
  • 07

Network

ここを編集
記事メニュー2
取得中です。
申し訳ありませんが、recent_ref プラグインは提供を終了し、ご利用いただけません。

合計: -
今日: -
昨日: -
TOP合計: -


ここを編集
人気記事ランキング
  1. C演習I
  2. C演習I 01
  3. Java
  4. Java演習 08
  5. C演習I 04
  6. C演習I 08
  7. C演習I 02
  8. C演習I 06
もっと見る
最近更新されたページ
  • 245日前

    TOP/コメントログ
  • 5158日前

    Java演習 08
  • 5158日前

    Java
  • 5166日前

    メニュー
  • 5166日前

    Java演習 07
  • 5175日前

    Network
  • 5175日前

    C演習I 10
  • 5175日前

    C演習I 11
  • 5175日前

    C演習I 12
  • 5175日前

    C演習I 13
もっと見る
人気記事ランキング
  1. C演習I
  2. C演習I 01
  3. Java
  4. Java演習 08
  5. C演習I 04
  6. C演習I 08
  7. C演習I 02
  8. C演習I 06
もっと見る
最近更新されたページ
  • 245日前

    TOP/コメントログ
  • 5158日前

    Java演習 08
  • 5158日前

    Java
  • 5166日前

    メニュー
  • 5166日前

    Java演習 07
  • 5175日前

    Network
  • 5175日前

    C演習I 10
  • 5175日前

    C演習I 11
  • 5175日前

    C演習I 12
  • 5175日前

    C演習I 13
もっと見る
ウィキ募集バナー
新規Wikiランキング

最近作成されたWikiのアクセスランキングです。見るだけでなく加筆してみよう!

  1. MadTown GTA (Beta) まとめウィキ
  2. AviUtl2のWiki
  3. R.E.P.O. 日本語解説Wiki
  4. 機動戦士ガンダム EXTREME VS.2 INFINITEBOOST wiki
  5. シュガードール情報まとめウィキ
  6. ソードランページ @ 非公式wiki
  7. ドラゴンボール Sparking! ZERO 攻略Wiki
  8. シミュグラ2Wiki(Simulation Of Grand2)GTARP
  9. 星飼いの詩@ ウィキ
  10. Dark War Survival攻略
もっと見る
人気Wikiランキング

atwikiでよく見られているWikiのランキングです。新しい情報を発見してみよう!

  1. アニヲタWiki(仮)
  2. ストグラ まとめ @ウィキ
  3. ゲームカタログ@Wiki ~名作からクソゲーまで~
  4. 初音ミク Wiki
  5. 検索してはいけない言葉 @ ウィキ
  6. 機動戦士ガンダム バトルオペレーション2攻略Wiki 3rd Season
  7. 発車メロディーwiki
  8. Grand Theft Auto V(グランドセフトオート5)GTA5 & GTAオンライン 情報・攻略wiki
  9. オレカバトル アプリ版 @ ウィキ
  10. SDガンダム ジージェネレーションジェネシス 攻略Wiki
もっと見る
全体ページランキング

最近アクセスの多かったページランキングです。話題のページを見に行こう!

  1. 過去の行動&発言まとめ - 鹿乃つの氏 周辺注意喚起@ウィキ
  2. マイティーストライクフリーダムガンダム - 機動戦士ガンダム EXTREME VS.2 INFINITEBOOST wiki
  3. 魚拓まとめ - 鹿乃つの氏 周辺注意喚起@ウィキ
  4. 参加者一覧 - ストグラ まとめ @ウィキ
  5. 1103環境(遊戯王) - アニヲタWiki(仮)
  6. 前作からの変更点 - 機動戦士ガンダム EXTREME VS.2 INFINITEBOOST wiki
  7. 魔獣トゲイラ - バトルロイヤルR+α ファンフィクション(二次創作など)総合wiki
  8. コレクター・ユイ - アニヲタWiki(仮)
  9. サーヴァント/一覧/クラス別 - Fate/Grand Order @wiki 【FGO】
  10. 画像倉庫 - 鹿乃つの氏 周辺注意喚起@ウィキ
もっと見る

  • このWikiのTOPへ
  • 全ページ一覧
  • アットウィキTOP
  • 利用規約
  • プライバシーポリシー

2019 AtWiki, Inc.