求最值问题。输入一批学生的成绩,找出最高分。
思路:先输入一个成绩,假设它为最高分,然后在循环中读入下一个成绩,并与最高分比较,若大于最高分,则设它为最高分,继续循环,直至所有数据处理完。
1.先输入一个正整数n,代表数据的个数,然后再输入n个数据,重复n次,属于指定次数的循环,用for语句实现。
2.设定一个特殊数据(伪数据)作为循环结束的标志,如设个负数作为结束标志。
//输出最值问题
#include<stdio.h>
int main()
{
int mark;
int i,n,max;
printf("Enter n:");
scanf("%d",&n);
printf("Enter mark:"); //先读入一个数
scanf("%d",&mark);
max=mark; //然后假设第一个数是最大值
for(i=1;i<n;i++){ //此时已经读了一个数,所以循环为n-1次
scanf("%d",&mark);
if(mark>max){
max=mark;
}
}
printf("max=%d\n",max);
return 0;
}
测试
Enter n:5
Enter mark: 67 88 73 54 82
max=88
//输出最值问题while语句
#include<stdio.h>
int main()
{
int max,mark;
printf("Enter mark:");
scanf("%d",&mark);
max=mark;
while (mark>=0){
scanf("%d",&mark);
if(max<mark){
max=mark;
}
}
printf("max=%d\n",max);
return 0;
}
Enter mark: 67 88 73 54 82 -1
max=88