今天星期六,休息的一天。
只做了一道小题。
10.30 一批数中最大值最小值 (50 分)
从键盘输入若干学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时循环结束。
输入格式:
在一行中输入若干个用空格间隔的整数,最后输入负数结束输入,数据之间只能用1个空格间隔。
输出格式:
在一行中按照“max=最高分,min=最低分”的格式输出结果,最高分和最低分均原样输出,没有列宽控制。
输入样例1:
58 78 95 65 86 -1
输出样例1:
max=95,min=58
输入样例2:
9 8 6 7 0 -21
输出样例2:
在这里给出相应的输出。例如:
max=9,min=0
非常简单,循环加if即可轻松解决。
#include<stdio.h>
int main()
{
int a,i,min=100,max=-1;
for(i=0;a>=0;i++)
{
scanf("%d",&a);
if(a<0)break;
if(a>max){max=a;}
if(a<min){min=a;}
}printf("max=%d,min=%d\n",max,min);
return 0;
}
值得一提的是关于最大值和最小值的设立。
此处最大值,由于是分数不会超过100,在其他条件下可以尽量设为该类型能表示的最大值,以确保所有的数都能进行比较,最小值同理。