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 04
  2. Network
  3. C演習I
  4. C演習I 11
もっと見る
最近更新されたページ
  • 209日前

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

    Java演習 08
  • 5122日前

    Java
  • 5131日前

    メニュー
  • 5131日前

    Java演習 07
  • 5140日前

    Network
  • 5140日前

    C演習I 10
  • 5140日前

    C演習I 11
  • 5140日前

    C演習I 12
  • 5140日前

    C演習I 13
もっと見る
人気記事ランキング
  1. C演習I 04
  2. Network
  3. C演習I
  4. C演習I 11
もっと見る
最近更新されたページ
  • 209日前

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

    Java演習 08
  • 5122日前

    Java
  • 5131日前

    メニュー
  • 5131日前

    Java演習 07
  • 5140日前

    Network
  • 5140日前

    C演習I 10
  • 5140日前

    C演習I 11
  • 5140日前

    C演習I 12
  • 5140日前

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

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

  1. MadTown GTA (Beta) まとめウィキ
  2. GTA5 MADTOWN(β)まとめウィキ
  3. R.E.P.O. 日本語解説Wiki
  4. シュガードール情報まとめウィキ
  5. SYNDUALITY Echo of Ada 攻略 ウィキ
  6. ドタバタ王子くん攻略サイト
  7. ガンダムGQuuuuuuX 乃木坂46部@wiki
  8. パズル&コンクエスト(Puzzles&Conquest)攻略Wiki
  9. ありふれた職業で世界最強 リベリオンソウル @ ウィキ
  10. Idol Showdown(アイドルショーダウン)日本 @ ウィキ
もっと見る
人気Wikiランキング

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

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

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

  1. 参加者一覧 - ストグラ まとめ @ウィキ
  2. Lycoris - MadTown GTA (Beta) まとめウィキ
  3. 参加者一覧 - MadTown GTA (Beta) まとめウィキ
  4. 魔獣トゲイラ - バトルロイヤルR+α ファンフィクション(二次創作など)総合wiki
  5. 品川駅 - 発車メロディーwiki
  6. ぶんぶんギャング - MadTown GTA (Beta) まとめウィキ
  7. Famos Gray - ストグラ まとめ @ウィキ
  8. 去勢 - アニヲタWiki(仮)
  9. anbrella(餡ブレラ) - ストグラ まとめ @ウィキ
  10. ガーベラ・テトラ改 - 機動戦士ガンダム バトルオペレーション2攻略Wiki 3rd Season
もっと見る

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

2019 AtWiki, Inc.