输入10个学生的C语言成绩(假设成绩为整数值),求最高成绩、最低成绩和平均值。
**输入格式要求:"%d" 提示信息:"请输入10个学生的C成绩:\n"
**输出格式要求:
"10个学生的C成绩分别为:\n"
"%d\t"
10个成绩的最后输出一个"\n"
"最高成绩是%d,是第%d个学生\n"
"最低成绩是%d,是第%d个学生\n"
"10名学生的C成绩的平均分为:%.2f\n"
程序运行示例如下:
请输入10个学生的C成绩:
80 90 93 78 83 67 79 60 64 45
10个学生的C成绩分别为:
80 90 93 78 83 67 79 60 64 45
最高成绩是93,是第3个学生
最低成绩是45,是第10个学生
10名学生的C成绩的平均分为:73.90
#include <stdio.h>
#include <stdlib.h>
void paixu(int numbers[10],int xuehao[10]);
float average(int numbers[10]);
int main()
{
int numbers[10];
int xuehao[10]={1,2,3,4,5,6,7,8,9,10};
printf("请输入10个学生的C成绩:\n");
int i;
for(i=0;i<10;i++)
{
scanf("%d",&numbers[i]);
}
paixu(numbers[10],xuehao[10]);
float a;
a=average(numbers[10]);
printf("最高成绩是%d,是第%d个学生\n",numbers[0],xuehao[0]);
printf("最低成绩是%d,是第%d个学生\n",numbers[9],xuehao[9]);
printf("10名学生的C成绩的平均分为:%.2f\n",a);
return 0;
}
void paixu(int numbers[10],int xuehao[10])
{
int t,j,k,m;
for(j=0;j<10;j++)
{
for(k=0;k<10-j-1;k++)
{
if(numbers[k]<numbers[k+1])
{
t=numbers[k];
numbers[k]=numbers[k+1];
numbers[k+1]=t;
m=xuehao[k];
xuehao[k]=xuehao[k+1];
xuehao[k+1]=m;
}
}
}
}
float average(int numbers[10])
{
int i;
int sum=0;
float h;
for(i=0;i<10;i++)
{
sum=sum+numbers[i];
}
h=(float)sum/10;
return h;
}
函数的形参定义 ,函数的调用,写法问题,修改见注释,供参考:
#include <stdio.h>
#include <stdlib.h>
void paixu(int numbers[],int xuehao[]);
//void paixu(int numbers[10],int xuehao[10]);
float average(int numbers[]);
//float average(int numbers[10]);
int main()
{
int numbers[10];
int xuehao[10]={1,2,3,4,5,6,7,8,9,10};
printf("请输入10个学生的C成绩:\n");
int i;
for(i=0;i<10;i++)
{
scanf("%d",&numbers[i]);
}
paixu(numbers,xuehao); //paixu(numbers[10],xuehao[10]);
float a;
a=average(numbers); //average(numbers[10]);
printf("最高成绩是%d,是第%d个学生\n",numbers[0],xuehao[0]);
printf("最低成绩是%d,是第%d个学生\n",numbers[9],xuehao[9]);
printf("10名学生的C成绩的平均分为:%.2f\n",a);
return 0;
}
void paixu(int numbers[],int xuehao[])
//void paixu(int numbers[10],int xuehao[10])
{
int t,j,k,m;
for(j=0;j<10;j++)
{
for(k=0;k<10-j-1;k++)
{
if(numbers[k]<numbers[k+1])
{
t=numbers[k];
numbers[k]=numbers[k+1];
numbers[k+1]=t;
m=xuehao[k];
xuehao[k]=xuehao[k+1];
xuehao[k+1]=m;
}
}
}
}
float average(int numbers[])
//float average(int numbers[10])
{
int i;
int sum=0;
float h;
for(i=0;i<10;i++)
{
sum=sum+numbers[i];
}
h=(float)sum/10;
return h;
}
调用函数传递数组时,传递数组名就可以了,代码修改如下:
#include <stdio.h>
#include <stdlib.h>
void paixu(int numbers[10],int xuehao[10]);
float average(int numbers[10]);
int main()
{
int numbers[10];
int xuehao[10]={1,2,3,4,5,6,7,8,9,10};
printf("请输入10个学生的C成绩:\n");
int i;
for(i=0;i<10;i++)
{
scanf("%d",&numbers[i]);
}
paixu(numbers,xuehao);
float a;
a=average(numbers);
printf("最高成绩是%d,是第%d个学生\n",numbers[0],xuehao[0]);
printf("最低成绩是%d,是第%d个学生\n",numbers[9],xuehao[9]);
printf("10名学生的C成绩的平均分为:%.2f\n",a);
return 0;
}
void paixu(int numbers[10],int xuehao[10])
{
int t,j,k,m;
for(j=0;j<10;j++)
{
for(k=0;k<10-j-1;k++)
{
if(numbers[k]<numbers[k+1])
{
t=numbers[k];
numbers[k]=numbers[k+1];
numbers[k+1]=t;
m=xuehao[k];
xuehao[k]=xuehao[k+1];
xuehao[k+1]=m;
}
}
}
}
float average(int numbers[10])
{
int i;
int sum=0;
float h;
for(i=0;i<10;i++)
{
sum=sum+numbers[i];
}
h=(float)sum/10;
return h;
}
#include <stdio.h>
#include <stdlib.h>
void paixu(int numbers[10], int xuehao[10]);
float average(int numbers[10]);
int main()
{
int numbers[10];
int xuehao[10] = { 1,2,3,4,5,6,7,8,9,10 };
printf("请输入10个学生的C成绩:\n");
int i;
for (i = 0; i < 10; i++)
{
scanf("%d", &numbers[i]);
}
paixu(numbers, xuehao);
float a;
a = average(numbers);
printf("最高成绩是%d,是第%d个学生\n", numbers[0], xuehao[0]);
printf("最低成绩是%d,是第%d个学生\n", numbers[9], xuehao[9]);
printf("10名学生的C成绩的平均分为:%.2f\n", a);
return 0;
}
void paixu(int numbers[10], int xuehao[10])
{
int t, j, k, m;
for (j = 0; j < 10; j++)
{
for (k = 0; k < 10 - j - 1; k++)
{
if (numbers[k] < numbers[k + 1])
{
t = numbers[k];
numbers[k] = numbers[k + 1];
numbers[k + 1] = t;
m = xuehao[k];
xuehao[k] = xuehao[k + 1];
xuehao[k + 1] = m;
}
}
}
}
float average(int numbers[10])
{
int i;
int sum = 0;
float h;
for (i = 0; i < 10; i++)
{
sum = sum + numbers[i];
}
h = (float)sum / 10;
return h;
}