C语言 已知一个班10个同学的成绩,存放在一个一维数组中,要求找出其中成绩最高的学生成绩和该生的序号.

如题所述

代码:

扩展资料:

scanf 函数最主要的用法是:

scanf("输入控制符", 输入参数);

功能:将从键盘输入的字符转化为“输入控制符”所规定格式的数据,然后存入以输入参数的值为地址的变量中。

用scanf()函数以%s格式读入的数据不能含有空白符时,所有空白符都被当做数据结束的标志。所以题中函数输出的值只有空格前面的部分。

如果想要输出包括空格在内的所有数据,可以使用gets()函数读入数据。gets()函数的功能是读取字符串,并存放在指定的字符数组中,遇到换行符或文件结束标志时结束读入。换行符不作为读取串的内容,读取的换行符被转换为字符串结束标志'\0'。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-05-16
#include <stdio.h>
#include <stdlib.h>
int main()
{
    int grade[10];
    int i,maxGrade,index;
    printf("输入10个学生的成绩:\n");
    for (i=0;i<10;i++)
    {
        printf("学生%d成绩:",i+1);
        scanf("%d",&(grade[i]));
    }
    maxGrade=grade[0];
    for(i=0;i<10;i++)
    {
        if(grade[i]>maxGrade)
        {
            maxGrade = grade[i];
            index=i+1;
        }
    }
    printf("成绩最高学生序号是%d\n",index);
    printf("成绩最高学生成绩是%d\n",maxGrade);
    return 0;
}


运行结果:

本回答被网友采纳
第2个回答  2013-05-16

#include <stdio.h>

void main()

{

int j,i,score[11],t,t2;

printf("请输入10个学生的成绩:\n");

for(i=1;i<=10;i++)

scanf("%d",&score[i]);

t=score[1];t2=1;

for(i=1;i<=9;i++)

if(score[i]>t) 

{

t=score[i];

t2=i;

}

printf("最高分是:%d\t该生学号是:%d\n",score[t2],t2);

}

本回答被提问者采纳
第3个回答  2013-05-16
void main()
{
int a=0,b,i,n[10];
for(i=0;i<10;i++)
{if(n[i]>n[i+1])
a=(n[i]>a)?n[i]:a;b=i;
else
a=(n[i+1]>a)?n[i+1]:a;b=i+1;
}
printf("d%,d%",a,b);
}