C语言问题:输入n(1<=n<=10)和n个学生的数据,每个学生的数据包括学号,姓名,三门课的成绩

#include<stdio.h>
#define MAX 100
struct Student
{
char name[20];
int number;
int s[3];
int sum;
};struct Student stu[MAX];
int main()
{
int n,i,j,m,max;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d%s",&stu[i].number,stu[i].name);
for(j=0;j<3;j++)
scanf("%d",&stu[i].s[j]);
}

for(i=0;i<n;i++)
{
stu[i].sum=0;
for(j=0;j<3;j++)
stu[i].sum+=stu[i].s[j];
}
// max=stu[0].sum=0;
max=0;
for(i=0;i<n;i++)
{
if(stu[i].sum>max)
{
m=i;
}
max=stu[m].sum; //加上这一句,不然一直在和max=0在比较
}
for(i=0;i<n;i++){
printf("%d %s ",stu[i].number,stu[i].name);
for(j=0;j<3;j++){
printf("%d ",stu[i].s[j]);
}
printf("%d\n",stu[i].sum);
}
printf("%s %d",stu[m].name,stu[m].sum);

}

有n个学生,每个学生的数据包括学号、姓名和3门课的成绩,用键盘输入n个学生的数据

已帮你改好

#include
#define MAX 100
struct Student
{
char name[20];
int number;
int s[3];
int average;
};struct Student stu[MAX];
int main()
{
int n,i,j,m,max;
printf("请输入人数:");
scanf("%d",&n);
printf("请依次输入每个学生的姓名、学号、及三门课成绩:
");
for(i=0;i<n;i++)
{
printf("请输入第%d人的数据:
",i+1);
scanf("%s%d",stu[i].name,&stu[i].number);
for(j=0;j<3;j++)
scanf("%d",&stu[i].s[j]);//========================这里加个&
printf("/n");
}
for(i=0;i<n;i++)
{
printf("%s%d",stu[i].name,stu[i].number);
for(j=0;j<3;j++)
printf("%d",stu[i].s[j]);
printf("
");
}
for(i=0;i<n;i++)
{
stu[i].average=0;
for(j=0;j<3;j++)
stu[i].average+=stu[i].s[j];
stu[i].average=stu[i].average/3;
}
max=stu[0].average=0;
for(i=0;i<n;i++)
if(stu[i].average>max)
{
max=stu[i].average;
m=i;
}
printf("平均分最高同学数据:
");
printf("%s%d%d%d%d%d%d",stu[i].name,stu[i].number,stu[i].s[1],stu[i].s[2],stu[i].s[3],stu[i].average);
return 0;
}
希望回答能帮到你,望采纳!

#include(stdio.h)
main()
{struct student
{long number;
char name[20];
float score[4];
}person[10];
int i;
printf("请输入10名学生的学号、姓名、及三门成绩:");
for(i=0;i<10;i++)
scanf("%d,%s,%d,%d,%d",&person[i]->number,person[i]->name,&person->score[0],&person->score[1],&person->score[2]);
for(i=0,i<10;i++)
person->score[3]=(person->score[0]+person->score[1]+person->score[2])/3;
printf("10名同学的情况如下:
");
for(i=0;i<10;i++)
printf("学号:%d 姓名:%s 成绩:%d %d %d 平均成绩:%d
",person[i]->number,person[i]->name[20],person->score[0],person->score[1],person->score[2],person->score[3]);
}

拓展资料

C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。


c语言★数据输入 输入一行包括一个正整数 n(1<=n<=10^12)。 ★数据输 ...
再用各个质数的指数加一后再相乘即为此数的约数个数,2的质数为3,3的指数为1。 比如 (3+1)*(1+1)=4*2=8, 即表示24有8个约数。如上面例子,也就是要求分解式子,然后统计每个因子的指数,实现+1后相乘,sum中就是结果,算法采用快速计算方法,每次都会把范围缩小到n\/i然后开平方。

c语言,程序设计,输入一个正整数n1,然后输入第一组n1个数,将这些数按...
Enter %s(int 0<%s<101)...\\n%s = ",n,n,n);if(scanf("%d",&m)==1 && m>0 && m<101){return m;}printf("Input error, exit...\\n");exit(1);}void getdata(int *x,int n){int i;printf("Please enter %d data...\\n",n);for(i=0;i<n;scanf("%d",x+i++)...

c语言编程:求1!到n!的和
int fun(int n)\/\/求n!{int i=1,c=1;while(i<=n){c*=i;i++;}return c;}int main(){int i,n;int sum=0;printf("输入n:");scanf("%d",&n);for(i=1 ; i<=n ; i++)sum+=fun(i);printf("输出:%d\\n",sum);return 0;}希望能帮助你哈 本回答由提问者推荐 举报| 答案纠错 |...

1、 输入2个正整数m和n(1<=m,n<=6),然后输入该m行n列矩阵a中的元素,分 ...
scanf("%d",&n); printf("请输入%d个数据:",m*n); for(i=0;i<m;i++) { s=0; for(j=0;j<n;j++) { scanf("%d",&d); s+=d; } printf("第%d行的和为%d\\n",i+1,s); }} 本回答由提问者推荐 举报| 答案纠错 | 评论 18 7 jiweix 采纳率:66% 擅长: 编程语言 互联网 操作系...

输入一个正整数 n (1<n<=10),再输入 n 个整数,将它们从大到小排序后输 ...
应该是你想复杂 了..我根据你写的改了一下..你看看跟你的有什么区别..include<stdio.h> int main(void){ int a[10];int n,i,k,temp;printf("enter n:");scanf("%d",&n);printf("enter %d :",n);for(i=0;i<n;i++){ scanf("%d",&a[i]);} for(k=0;k<n;k++){ fo...

C语言编程问题,请问有多少种方法能实现:输入1输出0;输入0输出1? 方法...
无限种可能 这个问题无非就是输入n 然后n转化为m 再输出m 这个问题就变成n怎么转化为m的问题 如 m=1-n;m=1^n;m=(~n)&1;m=(1+n)&1;m=n?0:1;=== 有啊,还有……if(n) m = 0; else m = 1;m=abs(n-1);m=(n+1)%2 再多的就是显得啰嗦的了,比如m=(4-n*4)\/4这...

用C语言编写一个程序:从键盘输入n(0<N<100)个整数,计算并输出其中出现...
int N;int arr[MAX];record rd;int ct;int find;\/\/ 初始化结构体 for (i = 0; i < MAX; i++){ rd.counter[i] = 0;rd.number[i] = 0;} \/\/ 输入整数的个数N printf("Enter N (0<N<100): ");scanf("%d", &N);\/\/ 采用数组记录输入的整数 printf("Enter %d number :...

用C语言编写:“输入N, 计算1*3*5*...*(2N+1)”谢谢
long类型变量result,因为结果可能会非常大。然后,我们通过使用scanf函数来获取用户输入的N的值。接下来,我们使用一个循环(从0到N),每次迭代都将当前迭代数乘以2,并加上1,然后将结果累乘到result中。最后,我们使用printf函数将结果打印到屏幕上。记得在编译和运行之前,确保你的编译器支持C语言。

C语言 输入一个数字n,求1 一直到n的所有数字之间的和
include <stdio.h> void main(){ int n,i,m=0;printf("请输入一个数字:");scanf("%d",&n);for(i=1;i<=n;i++){ m=m+i;} printf("1开始到n的所有整数的和是:%d\\n",m);}

c语言输入一奇数n
t,x,*q,**p;printf("Input n(int 1~19 & odd)...\\nn=");if(scanf("%d",&n)!=1 || n<1 || n>19 || (n&1)==0){printf("Input error, exit...\\n");return 0;}q=(int *)malloc(sizeof(int)*n*n);if(q==NULL || (p=(int **)malloc(sizeof(int *)*n))...