タスク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 }