求大神帮改一下C语言(用C代码)PS:输出成绩表包括每个学生的学号、姓名、三门成绩及平均分。谢谢很着急
这个我可以帮你写
#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当前元素之后的...