#include<stdio.h>
#include<string.h>
#include<math.h>
// 输入一批学生的成绩(整数),输出最高分。
//输入包含多个非负整数和一个负整数。该负数不作为有效成绩,只表示输入结束。
//输出一个整数,即最高分。单独占一行。
int main()
{
//思路://是之前写过的比大小的题的翻版,for循环录入成绩,碰到负数跳出循环,直接把以前的拿来用
int a[10000]={0};
int cnt=1;//全/局部变量,全局变量是定义在函数外面,这里写错了
for(int i=0;/*a[i]>=0*/;)
{
scanf("%d",&a[i++]);//在赋值过后i再加1,与++i不一样
if(a[i-1]<0)
break;
cnt++;
}
for(int i=0;i<cnt;i++)
for(int j=i;j<cnt;j++)//每一次开始从a[i]处,类似于像第一次是a[0]与后面所有的比,第二次就是a[1]与后面的所有的比。
{
int temp;
if(a[i]<a[j])
{
temp=a[j];//大数给temp
a[j]=a[i];//小数给从第一个循环开始的下一个数
a[i]=temp;//把temp给第一个循环对应的数
}
}
printf("%d",a[0]);
// printf("%d",a[0]);
//例如给定4个数,第一个循环开始要拿a[0]去和a[1] \a[2]\a[3]去比,把大数给a[0]
//第二个循环,把第二个数作为次大数,a[1]装着仅比a[0]小或者等于的数,a[1]跟a[2]\a[3],
//其实写复杂了,搞成从大到小排序了。
return 0;//今天又是没带return 0的一天
}
郑轻oj1059
于 2022-04-06 08:43:14 首次发布