求大神帮改一下C语言(用C代码)PS:输出成绩表包括每个学生的学号、姓名、三门成绩及平均分。谢谢很着急

供稿:hz-xin.com     日期:2025-01-17
C语言编写程序处理10个学生的信息,每个学生的信息包括:学号,姓名,三门成绩,输出成绩表。

这个我可以帮你写

#include
#define NUM 10
#define SHOW 3

struct student {
int id; //学号
char name[20]; //名字
float score[3]; //3门成绩
float average; //平均分
}info[NUM];

void getdata() //接受学生数据
{
int i;

for(i=0; i<NUM; i++)
{
printf("please input the %d student infomation like:
",i+1);
printf("id name score(1) score(2) score(3)
");
scanf("%d %s %f %f %f",&info[i].id,info[i].name,&info[i].score[0],&info[i].score[1],&info[i].score[2]);
info[i].average = (info[i].score[0] + info[i].score[1] + info[i].score[2])/3.0;
}
return ;
}

void showlist() //输出成绩表
{
int i;

printf("the student information list:
");
printf("idnamescore(1)score(2)score(3)average
");
for(i=0; i<NUM; i++)
{
printf("%d%s%.2f",info[i].id,info[i].name,info[i].score[0]);
printf("%.2f%.2f%.2f
",info[i].score[1],info[i].score[2],info[i].average);
}

}

void showtop() //平均分前3名的名字和平均分
{
int i,j;
struct student top;

for(i=0; i<NUM; i++)
{
for(j=0; j<(NUM-i); j++)
{
if(info[j].average > info[j+1].average)
{
top = info[j];
info[j] = info[j+1];
info[j+1] = top;
}
}
}

printf("the top three average is:
");
printf("nameaverage
");
for(i=NUM; i>NUM-SHOW; i--)
{
printf("%s%.2f
",info[i].name,info[i].average);
}

return;
}

int main()
{
getdata();
showlist();
showtop();
return 0;
}

看到题目现写的,完全按照题目的意思,编译通过,请采纳! 另外可以通过更改宏NUM的值修改学生的个数,更改宏SHOW的值修改显示最高平均分的人数。

// 33333333.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

struct student {
char stuNum[20];    //学生学号
char stuName[20];    //学生姓名
float stuscore[3];    //学生3门课成绩
float aveScore;        //平均成绩
};

//插入排序
void insertSort(student stu[], int N) {
    int j, p;

    student temp;
    for(p = 1; p < N; p++) {
        temp = stu[p];
        for(j = p; j > 0 && stu[j - 1].aveScore > temp.aveScore; j--)
            stu[j] = stu[j - 1];
        stu[j] = temp;
    }
}

int main() {
    int i, j;
    student stu[10];
    for(i = 0; i < 2; i++) {
        printf("请输入第%d个学生学号:", i + 1);
        scanf("%s", stu[i].stuNum);
        printf("请输入第%d个学生姓名:", i + 1);
        scanf("%s", stu[i].stuName);
        printf("请输入第%d个学生的三门课程成绩:", i + 1);
        for(j = 0; j < 3; j++)
        {
            scanf("%f", &stu[i].stuscore[j]);
            printf("
");
        }
    }
    for(i = 0; i <2; i++) 
    {
    stu[i].aveScore = (stu[i].stuscore[0] + stu[i].stuscore[1] + stu[i].stuscore[2]) / 3;
    insertSort(stu, i);
    printf("学号姓名三门成绩平均分
");
    printf("%s%s%5.2f%5.2f%5.2f%5.2f
", stu[i].stuNum,stu[i].stuName, stu[i].stuscore[0],stu[i].stuscore[1],stu[i].stuscore[2],stu[i].aveScore);
    }
            
}


用C语言编个程序,求π(派)
include<math.h> int main(){ double e=0.1,b=0.5,c,d;long int i; \/*i: 正多边形边数*\/ for(i=6;;i*=2) \/*正多边形边数加倍*\/ { d=1.0-sqrt(1.0-b*b); \/*计算圆内接正多边形的边长*\/ b=0.5*sqrt(b*b+d*d);if(2*i*b-i*e<1e-15) break; \/*精度达1e-...

用c语言怎么编辑 p = (1+r)的n次方
p=(int)pow(1+r,n);printf("p=:%d",p);return 0;} 输入格式为r n,回车就是答案。用到pow函数,在头文件中引用#include <math.h>,其他的都很简单。

c语言使用指针p,访问数组a[5]={1,2,3,4,5}的值。
1.代码如下:include<stdio.h>int main(){ int a[5] = { 1, 2, 3, 4, 5 }; int *p = a; printf("访问数组a的值:\\n"); for (int i = 0; i < 5; i++) printf("%d\\n", *p++); getchar(); return 0;}2.运行结果如下:希望对你有帮助~...

谁能帮我写一下单片机C语言程序?
sbit K1=P1^1;sbit K2=P1^2;void delay(int ms){ unsigned char i;while(ms--)for(i=0;i<120;i++);} void t0isr(void) interrupt 1 { TH0=(65536-10000)\/256;TL0=(65536-10000)%256;LED=~LED;} main(){ TMOD=0x01;TH0=(65536-10000)\/256;TL0=(65536-10000)%256;ET0=1;E...

用C语言编写的PI调节器函数,采用位置式算法,求大神指教
a:b) #define min(a, b) (a<b? a:b) #define range(x, a, b) (min(max(x, a), b)) float pid_pos_update(PIDType *p) { float pe, ie, de; float out=0; \/\/计算当前误差 p->e0 = p->target - p->feedback; \/\/误差积分 p->eSum...

求大神帮忙c语言编程
{ int weight = 0;float money = 0;printf("请输入托运行李重量");scanf("%d",&weight);if(weight <= 20){ printf("免费托运");} if(weight>20 && weight<=30){ money = (weight-20)*30;printf("超出20公斤的部分30元\/公斤,托运费用为:,%f\\n",money,"元");} if(weight>30 ...

求详细解释一下c语言代码 for(++p;p<=q;++p)*(p-1)=*p
p是一个被初始化过的指针,按上面代码应该指向某类型的数组,为超表达方便,数组记为x(i)。for循环首先把p从当前位置x(k)移动到x(k+1)作为初值,只要指针没到q指向的位置,就继续循环,循环每次递增一个数据。循环体将数组当前位置数据拷贝到前一个位置。总之,初始时,如果p指向x(m),q...

C语言 哪位帮我改一下程序,题目要求提取第一个文本中第一个空格前的字 ...
\/\/读一行a,将第一个空格前复制到b { p=a;q=b;m=strlen(a);while(*p){ *q++=*p++;if(*p==32) break;} q='\\0';\/\/读一行A,同时读一行x,将x第一个逗号前复制到y while(fgets(x,sizeof(x),fp)!=NULL){n=strlen(x);s=x;t=y;while(*s){ *t++=*s++;if(*s==...

C语言课程设计,求帮忙写完代码
C语言课程设计,求帮忙写完代码 100 自己写了一段,请高手帮忙啦#include<stdio.h>enumMajor{Soft=1,Net,Jike};\/\/专业enumMajormajor;#defineARRAYSIZE100\/\/数组大小typedefstruct{charszNo[11];charszName[21];enumMajo... 自己写了一段,请高手帮忙啦#include <stdio.h>enum Major{Soft=1, Net, Jike}; ...

哪位大佬能帮看看这道c语言?
ps:由于存在b小于a的所有元素这种特殊情况,循环外还有a数组全部后移的情况。故位移写成单独函数,符合编程习惯。下面是代码:include <stdio.h> void move1(int *bp,int a[],int len)\/\/从bp开始往后移动1位 { int *ep=&a[len-1];if(bp>=a && bp<=ep)while(ep>bp)\/\/a当前元素之后的...