プログラミング演習問題集

タスク1

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 #include <time.h>
 4 #define COUNT 5
 5 #define MIN_A 397
 6 #define MAX_B 476
 7 #define MAX_C 21
 8 int main() {
 9 int index;
10 int group_id, student_num;
11 srand(time(NULL)); // システム時刻をシード値に設定
12 index = 0;
13 while(index < COUNT) {
14 group_id = rand() % 2;
15 if(group_id) {
16 student_num = rand() % (MAX_B - MIN_A + 1) + MIN_A;
17 printf("20248329%04d\n", student_num);
18 }
19 else {
20 student_num = rand() % MAX_C + 1;
21 printf("20248395%04d\n", student_num);
22 }
23 index++;
24 }
25 return 0;
26 }

問題1:20248329(xxxx)の範囲を11・12組の学籍番号内に制限する

問題2:20248395(xxxx)の範囲を奇安信班の学籍番号内に制限する

問題3:このプログラムは11・12組および奇安信班の学生をランダムに抽選している

タスク2

 1 #include <stdio.h>
 2 #include <math.h>
 3 int main() {
 4 double a_val, b_val, c_val;
 5 double discriminant, root1, root2; 
 6 while(scanf("%lf%lf%lf", &a_val, &b_val, &c_val) != EOF) {
 7 if(a_val == 0) {
 8 printf("a = 0, 無効な入力\n");
 9 continue;
10 }
11 discriminant = b_val*b_val - 4*a_val*c_val;
12 root1 = -b_val/(2*a_val);
13 root2 = sqrt(fabs(discriminant))/(2*a_val);
14 if(discriminant == 0)
15 printf("x1 = x2 = %.2g\n", root1);
16 else if(discriminant > 0)
17 printf("x1 = %.2g, x2 = %.2g\n", root1+root2, root1-root2);
18 else {
19 printf("x1 = %.2g + %.2gi, ", root1, root2);
20 printf("x2 = %.2g - %.2gi\n", root1, root2);
21 }
22 }
23 return 0;
24 }

タスク3

 1 #include <stdio.h>
 2 
 3 int main() {
 4     char signal;
 5     while ((signal = getchar())!= EOF) {
 6         while (getchar()!= '\n');
 7         if (signal == 'r') {
 8             printf("停止!\n");
 9         } else if (signal == 'g') {
10             printf("進んでください\n");
11         } else if (signal == 'y') {
12             printf("一時停止してください\n");
13         } else {
14             printf("信号エラー\n");
15         }
16     }
17     return 0;
1

タスク4

 1 #include<stdio.h>
 2 int main(){
 3     printf("今日の支出を入力してください(終了は-1):"); 
 4     double expenses[100];
 5     int i;
 6     double total=0;
 7     int count=0;
 8     for(i=0;i<100;i++){
 9         scanf("%lf",&expenses[i]);
10         total+=expenses[i];
11         if(expenses[i]==-1){
12             break;
13         }
14         count++;
15     }
16         double max=0;
17         double min=expenses[0];
18     for(i=0;i<count;i++){
19         
20         if(expenses[i]>max){
21             max=expenses[i];
22             
23         }
24     }
25     
26     for(i=1;i<count;i++){
27         if(expenses[i]<min&&expenses[i]!=-1){
28             min=expenses[i];
29         }
30     }
31     printf("合計支出%.1f\n",total); 
32     printf("最大支出%.1f\n",max);
33     printf("最小支出%.1f\n",min);
34     
35     return 0;
36 }

タスク5

 1 #include<stdio.h>
 2 int main(){
 3     int x,y,z;
 4     while(scanf("%d%d%d",&x,&y,&z)!=EOF){
 5         if((x+y>z)&&(y+z>x)&&(x+z>y)){
 6             if(x==y&&y==z&&x==z){
 7                 printf("正三角形\n");
 8                 
 9             }
10             else if(x==y||y==z||x==z) {
11                 printf("二等辺三角形\n"); 
12             }
13             else if((x*x+y*y==z*z)||(y*y+z*z==x*x)||(x*x+z*z==y*y)){
14                 printf("直角三角形\n"); 
15             }
16             else{
17                 printf("一般三角形\n"); 
18             }
19             
20         
21         }
22         else{
23             printf("三角形を形成できません\n");
24         }
25         
26     }
27 }

タスク6

 1 #include <stdio.h>
 2 #include <time.h>
 3 #include <stdlib.h>
 4 
 5 int main() {
 6     printf("2024年11月のラッキーデーを当ててみよう\n");
 7     printf("3回まで挑戦できます。1~30の範囲で予想してください:\n");
 8 
 9     srand(time(NULL));
10     int lucky_date = rand() % 30 + 1;
11     int answer;
12     int tries = 0;
13 
14     while (tries < 3) {
15         scanf("%d", &answer);
16         if (answer < lucky_date) {
17             printf("日付が早すぎます。ラッキーデーはさらに後です\n");
18             if (tries < 2) {
19                 printf("再挑戦\n");
20             }
21         } else if (answer > lucky_date) {
22             printf("日付が遅すぎます。ラッキーデーはその前です\n");
23             if (tries < 2) {
24                 printf("再挑戦\n");
25             }
26         } else if (answer == lucky_date) {
27             printf("正解です!");
28             break;
29         }
30         tries++;
31     }
32 
33     if (tries == 3) {
34         printf("チャンス切れました。11月のラッキーデーは%d日でした", lucky_date);
35     }
36 
37     return 0;
38 }

タグ: C言語 乱数生成 二次方程式 制御構造 三角形判定

5月22日 05:21 投稿