实验2
task1
问题1:生成5个1-100的随机数 并带上前缀20490042
问题2:rand()表随机 %CNT表示 将生成的数限制在1-99间 +1则变为1-100间
问题3:输出占4个字符宽度的十进制整数 这样不足4位也会自动补0
问题4:初始化随机数种子
task2
问题1:下一次运行的时候 总价还未清零
问题2:跳过当前循环 直接进入下一轮循环
task3
#include <stdio.h>
int main()
{
char light;
int i;
for (i = 1; i <= 4; i++)
{
scanf(" %c", &light);
switch (light)
{
case 'r':
printf("stop!\n");
break;
case 'g':
printf("go go go\n");
break;
case 'y':
printf("wait a minute\n");
break;
default:
printf("something must be wrong...\n");
break;
}
}
return 0;
}
task4
#include <stdio.h>
int main()
{
double money, max, min, sum = 0;
int count = 0;
while (1)
{
scanf("%lf", &money);
if (money == -1)
{
break;
}
if (money <= 0 || money > 20000)
{
printf("输入金额无效\n");
continue;
}
if (count == 0)
{
max = money;
min = money;
}
else
{
if (money > max)
{
max = money;
}
if (money < min)
{
min = money;
}
}
sum = sum + money;
count++;
}
if (count > 0)
{
printf("最高开销:%.1f\n", max);
printf("最低开销:%.1f\n", min);
printf("总开销:%.1f\n", sum);
}
else
{
printf("没有开销记录\n");
}
return 0;
}
task5
#include <stdio.h>
int main()
{
int a, b, c, i;
for (i = 1; i <= 5; i++)
{
scanf("%d%d%d", &a, &b, &c);
if (a <= 0 || b <= 0 || c <= 0 ||
a + b <= c ||
a + c <= b ||
b + c <= a)
{
printf("不能构成三角形\n");
}
else if (a == b && 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 if (a == b || a == c || b == c)
{
printf("等腰三角形\n");
}
else
{
printf("普通三角形\n");
}
}
return 0;
}
task6
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int lucky, guess, i;
int success = 0;
srand((unsigned int)time(NULL));
lucky = rand() % 30 + 1;
for (i = 1; i <= 3; i++)
{
printf("第%d次猜测,请输入日期:", i);
scanf("%d", &guess);
if (guess == lucky)
{
printf("恭喜你,猜中了!\n");
success = 1;
break;
}
else if (guess < lucky)
{
printf("猜早了!\n");
}
else
{
printf("猜晚了!\n");
}
}
if (success == 0)
{
printf("三次机会已用完!\n");
printf("11月的lucky day是%d号\n", lucky);
}
return 0;
}

浙公网安备 33010602011771号