实验2
task.1
#include<stdio.h> #include<stdlib.h> #include<time.h> #define N 5 #define N1 397 #define N2 476 #define N3 21 int main() { int cnt; int random_major, random_no; srand(time(NULL)); // 以当前系统时间作为随机种子 cnt = 0; while(cnt < N) { random_major = rand() % 2; if(random_major) { random_no = rand() % (N2 - N1 + 1) + N1; printf("20248329%04d\n", random_no); } else { random_no = rand() % N3 + 1; printf("20248395%04d\n", random_no); } cnt++; } return 0; }
问题一:随机生成397~476之间一个数
问题二:随机生成1~21之间一个数
问题三:将随机数作为后尾组合生成学号
task.2
// 一元二次方程求解
#include <stdio.h>
#include <math.h>
int main() {
double a, b, c;
double delta, p1, p2; // 用于保存中间计算结果
while(scanf("%lf%lf%lf", &a, &b, &c) != EOF) {
if(a == 0) {
printf("a = 0, invalid input\n");
continue;
}
delta = b*b - 4*a*c;
p1 = -b/2/a;
p2 = sqrt(fabs(delta))/2/a;
if(delta == 0)
printf("x1 = x2 = %.2g\n", p1);
else if(delta > 0)
printf("x1 = %.2g, x2 = %.2g\n", p1+p2, p1-p2);
else {
printf("x1 = %.2g + %.2gi, ", p1, p2);
printf("x2 = %.2g - %.2gi\n", p1, p2);
}
}
return 0;
}
task.3
#include<stdio.h> int main() { char a; while(scanf(" %c",&a)!=EOF) { if(a=='r'){ printf("stop!\n"); } else if(a=='y'){ printf("wait a mintue\n"); } else if(a=='g'){ printf("go go go\n"); } else{ printf("something must be wrong\n"); } } return 0; }
task.4
#include <stdio.h>
int main() {
double max, min, a, b;
max = 0;
min = 20000;
b = 0;
printf("输入今日开销,直到输入-1终止\n");
while (scanf("%lf", &a)!= EOF) {
if (a == -1) break;
if (a > max) max = a;
if (a < min) min = a;
b = b + a;
}
printf("今日累计消费总额: %.1lf\n", b);
printf("今日最高一笔开销: %.1lf\n", max);
printf("今日最低一笔开销: %.1lf\n", min);
return 0;
}
task.5
#include <stdio.h> int main() { int a, b, c; while (scanf("%d %d %d", &a, &b, &c)!= EOF) { if ((a + b <= c) || (a + c <= b) || (b + c <= a)) { printf("不能构成三角形\n"); } else { if ((a == b )&& (b == c)) { printf("等边三角形\n"); } else if ((a == b) || (a == c) || (b == c)) { printf("等腰三角形\n"); } else if ((a * a + b * b == c * c) || (a * a + c * c == b * b) || (b * b + c * c == a * a)) { printf("直角三角形\n"); } else { printf("普通三角形\n"); } } } return 0; }
task.6
#include <stdio.h> #include <stdlib.h> #include <time.h> int main() { srand(time(NULL)); int luckyDay = rand() % 30 + 1; int guess; int attempts = 3; printf("猜猜 2024 年 11 月哪一天会是你的 lucky day\n开始喽,你有三次机会,猜吧(1~30):"); while (attempts > 0) { scanf("%d", &guess); if (guess == luckyDay) { printf("哇,猜中了:)\n"); return 0; } else if (guess < luckyDay) { printf("你猜的日期早了,你的 lucky day 还没到呢。\n"); attempts--; if (attempts > 0) { printf("再猜(1~30):"); } } else { printf("你猜的日期晚了,你的 lucky day 在前面哦。\n"); attempts--; if (attempts > 0) { printf("再猜(1~30):"); } } } if (attempts == 0) { printf("次数用光啦。偷偷告诉你,11 月你的 lucky day 是 %d 号。\n", luckyDay); } return 0; }