C言語プログラミング演習:学籍番号抽選と条件判定

学籍番号生成プログラム


 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 #include<time.h>
 4 #define 抽選回数 5
 5 #define コンピュータ下限 397
 6 #define コンピュータ上限 476
 7 #define キアン上限 21
 8 
 9 int main() {
10     int カウンター = 0;
11     int 学科コード, 番号;
12     srand(time(NULL));
13     
14     while (カウンター < 抽選回数) {
15         学科コード = rand() % 2;
16         
17         if (学科コード == 1) {
18             番号 = rand() % (コンピュータ上限 - コンピュータ下限 + 1) + コンピュータ下限;
19             printf("20248329%04d\n", 番号);
20         } else {
21             番号 = rand() % キアン上限 + 1;
22             printf("20248325%04d\n", 番号);
23         }
24         カウンター++;
25     }
26     return 0;
27 }

問題仕様

  1. コンピュータ学科11〜12組の学籍番号を抽出
  2. キアンシンクラスの学籍番号を抽出
  3. コンピュータ学科から4つの学籍番号を抽出

二次方程式ソルバ


 1 #include <stdio.h>
 2 #include <math.h>
 3 
 4 int main() {
 5     double 係数A, 係数B, 係数C;
 6     double 判別式, 実部, 虚部;
 7     
 8     while (scanf("%lf%lf%lf", &係数A, &係数B, &係数C) != EOF) {
 9         if (係数A == 0) {
10             printf("a=0は無効な入力\n");
11             continue;
12         }
13         
14         判別式 = 係数B * 係数B - 4 * 係数A * 係数C;
15         実部 = -係数B / (2 * 係数A);
16         虚部 = sqrt(fabs(判別式)) / (2 * 係数A);
17         
18         if (判別式 == 0) {
19             printf("x1 = x2 = %.2g\n", 実部);
20         } else if (判別式 > 0) {
21             printf("x1 = %.2g, x2 = %.2g\n", 実部 + 虚部, 実部 - 虚部);
22         } else {
23             printf("x1 = %.2g + %.2gi, ", 実部, 虚部);
24             printf("x2 = %.2g - %.2gi\n", 実部, 虚部);
25         }
26     }
27     return 0;
28 }

交通信号コマンド処理


 1 #include<stdio.h>
 2 
 3 int main() {
 4     char 入力文字;
 5     
 6     while (scanf("%c", &入力文字) != EOF) {
 7         switch(入力文字) {
 8             case 'y':
 9                 printf("待機中\n");
10                 break;
11             case 'g':
12                 printf("前進可\n");
13                 break;
14             case 'r':
15                 printf("停止必須\n");
16                 break;
17             default:
18                 printf("無効なコマンド\n");
19         }
20         getchar();
21     }
22     return 0;
23 }

売上集計システム


 1 #include<stdio.h>
 2 
 3 int main() {
 4     double 金額, 合計 = 0;
 5     double 最大額 = 0, 最小額 = 20000;
 6     
 7     while (scanf("%lf", &金額) != EOF) {
 8         if (金額 == -1) break;
 9         
10         合計 += 金額;
11         
12         if (金額 > 最大額) 最大額 = 金額;
13         if (金額 < 最小額) 最小額 = 金額;
14     }
15     
16     printf("本日の売上合計:%.1f\n", 合計);
17     printf("最高売上金額:%.1f\n", 最大額);
18     printf("最低売上金額:%.1f\n", 最小額);
19     return 0;
20 }

三角形判定プログラム


 1 #include<stdio.h>
 2 
 3 int main() {
 4     int 辺1, 辺2, 辺3;
 5     
 6     while (scanf("%d%d%d", &辺1, &辺2, &辺3) != EOF) {
 7         if (辺1 + 辺2 <= 辺3 || 辺1 + 辺3 <= 辺2 || 辺2 + 辺3 <= 辺1) {
 8             printf("三角形不可\n");
 9         } else if (辺1 == 辺2 || 辺2 == 辺3 || 辺3 == 辺1) {
10             if (辺1 == 辺2 && 辺2 == 辺3) {
11                 printf("正三角形\n");
12             } else {
13                 printf("二等辺三角形\n");
14             }
15         } else if (辺1*辺1 + 辺2*辺2 == 辺3*辺3 || 
16                   辺1*辺1 + 辺3*辺3 == 辺2*辺2 ||
17                   辺2*辺2 + 辺3*辺3 == 辺1*辺1) {
18             printf("直角三角形\n");
19         } else {
20             printf("不等辺三角形\n");
21         }
22         getchar();
23     }
24     return 0;
25 }

ラッキーデー推測ゲーム


 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 #include<time.h>
 4 
 5 int main() {
 6     int ラッキーデー = rand() % 30 + 1;
 7     int 入力値, 試行回数 = 0;
 8     
 9     printf("2024年11月のラッキーデーを3回まで推測可能\n");
10     
11     while (試行回数 < 3) {
12         scanf("%d", &入力値);
13         試行回数++;
14         
15         if (入力値 == ラッキーデー) {
16             printf("正解!\n");
17             break;
18         } else if (入力値 < ラッキーデー) {
19             printf("早すぎます\n");
20         } else {
21             printf("遅すぎます\n");
22         }
23     }
24     
25     if (試行回数 == 3) {
26         printf("正解は11月%d日でした\n", ラッキーデー);
27     }
28     return 0;
29 }

タグ: C言語 学籍管理システム 条件分岐 数学計算 ゲーム開発

6月21日 22:20 投稿