C语言。输入n个学生的姓名,语文,数学,英语成绩,

#include <stdio.h>

float average;

}stu[N],temp;

void main()

printf("请依次输入%d个学生的姓名、语文成绩、数学成绩、英语成绩:
",N);

scanf("%s%d%d%d",&stu[i].name,&stu[i].yuwen,&stu[i].shuxue,&stu[i].yingyu);

stu[i].average=(stu[i].yuwen+stu[i].shuxue+stu[i].yingyu)/3.0;

printf("
姓名 语文 数学 英语 平均分
");

for(i=0;i<N;i++)

简介

C语言是一门面向过程的计算机编程语言,与C++、C#、Java等面向对象编程语言有所不同。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、仅产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。C语言描述问题比汇编语言迅速、工作量小、可读性好、易于调试、修改和移植,而代码质量与汇编语言相当。



#include <stdio.h>
#define N 5
struct student
{
char name[20];
int yuwen,shuxue,yingyu;
float average;
}stu[N],temp;
void main()
{
int i,j;
printf("请依次输入%d个学生的姓名、语文成绩、数学成绩、英语成绩:\n",N);
for(i=0;i<N;i++)
{
printf("第%d个:",i+1);
scanf("%s%d%d%d",&stu[i].name,&stu[i].yuwen,&stu[i].shuxue,&stu[i].yingyu);
stu[i].average=(stu[i].yuwen+stu[i].shuxue+stu[i].yingyu)/3.0;
}
for(i=0;i<N;i++)
for(j=0;j<N;j++)
if(stu[j].average<stu[j+1].average)
{temp=stu[j+1];stu[j+1]=stu[j];stu[j]=temp;}
printf("\n\t 姓名 语文 数学 英语 平均分\n");
for(i=0;i<N;i++)
{
printf("第%d名:",i+1);
printf("%8s%6d%6d%6d%7.2f\n",stu[i].name,stu[i].yuwen,stu[i].shuxue,stu[i].yingyu,stu[i].average);
}
}
说明:定义了五个学生,如果想改的话把#define N 5处的5改一下就行了。欢迎加QQ1144708276一起讨论编程问题。

建议你使用单链表方式来实现
结构如下:
struct student
{
long Number;
char Name[20];
long Score;//输入成绩的时候就计算出来平均值,如果要记录所有成绩可以再加成员变量
struct student *Next;
};
然后进行链表查找操作并做排序输出
这是个思路,应学生数量不定,貌似链表最合适,也许不是最好的,仅供参考

C语言编程,输入一个学生的姓名、学号、英语、数学、计算机成绩,输出学生姓名、学号和平均成绩

#include
#include
void main()
{
char name[20],number[20];
float math,english,computer;
double aver;
printf("Please input student's name:");
gets(name);;
printf("Please input student's number:");
gets(number);
printf("Please input student's English score:");
scanf("%f",&english);
printf("Please input student's Math score:");
scanf("%f",&math);
printf("Please input student's Computer score:");
scanf("%f",&computer);
aver=(english+math+computer)/3;
printf("Name:%s
",name);
printf("Number:%s
",number);
printf("Score:%5.2f
",aver);
}
输入:
Please input student's name:Lihua
Please input student's number:123456789
Please input student's English score:80.5
Please input student's Math score:91
Please input student's Computer score:89.5
输出:
Name:Lihua
NUmber:123456789
Score:87.00

/*
**使用动态分配内存,不限制学生数n的大小(限制于你的内存空间)
**使用结构体,程序更清晰
**没有加注释,很简单自己看看吧
**学生名字不能超过19个字符,开始这里使用一个指针,但是总报错,所以改用**字符数组\
**有问题联系我
*/
#include
/*学生的结构体*/
typedef struct{
char name[20];
float math;
float english;
}student;
int
main(void){
student *stu;
int n;

printf("input the number of the students!n=?
");
/*如果输入正确正整数则程序继续进行,否则报错!*/
if(scanf("%d",&n)==1 && n > 0){
/*申请动态内存*/
stu = malloc(n*sizeof(student));
/如果申请失败,则退出程序/
if(stu == NULL){
printf("out of memory!
");
exit(1);
}
/*各个统计值声明和初始化*/
float math_aver;
float math_total = 0;
float math_max = 0;
float english_aver;
float english_total = 0;
float english_max = 0;
int i;
printf("input the info of the students,format:name math english
");
/*循环让用户输入学生信息,并保存在结构体中,同时计算出总值和最大值*/
for(i = 0;i < n;i++){
if(scanf("%s %f %f",(stu+i)->name,&((stu+i)->math),&((stu+i)->english))!=3)
break;
/*数学和英语获取最大值*/
if(math_max math)
math_max = (stu+i)->math;
if(english_max english)
english_max = (stu+i)->english;
/*计算总值*/
math_total += (stu+i)->math;
english_total += (stu+i)->english;
}
/*计算平均值*/
math_aver = math_total/n;
english_aver = english_total/n;
/*输出统计信息*/
printf("Math
total:%.1f aver:%.1f max:%.1f
",math_total,math_aver,math_max);
printf("Enlish
total:%.1f aver:%.1f max:%.1f
",english_total,english_aver,english_max);
printf("name math english
");
/*输出成绩表,这里格式没有对齐,对这方面不是很懂*/
for(i = 0;i < n;i++){
printf("%s %4.1f %4.1f
",(stu+i)->name,(stu+i)->math,(stu+i)->english);
}
/*释放分配的内存*/
free(stu);
}
else{
printf("error input !");
}
}


一个C语言的题目!关于结构体的!
答:编写一个程序,输入N个学生的学号,姓名,3门课程的成绩,求出总分最高的学生并输出该学生的所有信息,... 编写一个程序,输入N个学生的学号,姓名,3门课程的成绩,求出总分最高的学生并输出该学生的所有信息, 展开  我来答 2个回答 #热议# 该不该让孩子很早学习人情世故?百度网友c7cc77f63 2009-06-18 ...

输入n个学生的学号、姓名、成绩。然后将学生按成绩从高到低排列后,输出...
答:如果用:struct Student { char name[20];int number ;float score ;struct Stuedent * next;}Stu[20] ;直接用套用(数组)冒泡法的算法.换个名字就可以了.你那应该有这算法把,不用我写出来.若用连表的冒泡排序:typedef struct Student { char name[20];int number ;float score ;struct Stue...

...姓名、三门课的成绩,从键盘上输入N个学生的信息
答:void output3(int n,stu *s){ stu tmp;for(int i=0;i<n-1;i++)for(int j=0;j<n-1-i;j++){ if(s[j].avg

c语言要求输入n(<=10)个人名,将这n个人名存入一个数组name中,然后将...
答:include<stdio.h> include<string.h> int main(){ char a[111][30],t[30];int n;scanf("%d",&n);getchar();for(int i=0;i<n;i++)gets(a[i]);for(int i=0;i<n;i++)for(int j=0;j<n-1-i;j++){ if(strcmp(a[j],a[j+1])>0){ strcpy(t,a[j]);strcpy(a[j...

用C语言编写一个程序,输入N个学生的学号和成绩,求平均成绩,并输出其 ...
答:include<stdio.h>#define N 5struct Stu{ int id; double score;};void sortScore(Stu s[N]){ int i; int min=0,max=0; for(i=1;i<N;i++){ if(s[i].score>s[max].score) max=i; if(s[i].score...

用C语言编写一程序,统计N个学生的成绩信息。
答:int n,i;struct Stu stud[sm];printf("请输入学生人数:\n");scanf("%d",&n);printf("请输入每个学生的信息:\n");for(i=0;i<n;i++){ printf("第%d个学生:\n",i+1);stud[i].mc=i+1;printf("输入学号:");scanf("%d",&stud[i].number);printf("输入姓名:");scanf("%s",...

编写一个程序,输入n个学生的学号,姓名,3门课程的成绩,求出总分最高的...
答:printf("请按以下格式输入学生信息(可用Tab键对齐):");printf("\n");count=0;while ((ch=='y') || (ch=='Y')){ stu[count]=input(); //调用录入信息函数 count++;printf("\n是否继续?(按Y继续,其它结束)");scanf(" %c",&ch);} printf("\n最高分为:");sort(stu,count...

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...

编写C语言程序处理若干个学生的信息,每个学生的信息包括:学号、姓名...
答://这里用来读入学生信息 printf("Pls enter your Info,as :2007 aaa 97 98 99\n");for(i=0;i<N;i++){ scanf("%ld %s %d %d %d",&stu[i].num,stu[i].name,&stu[i].score[0],&stu[i].score[1],&stu[i].score[2]);} //下面是用来显示输入的用户信息 for(i=0;i<N;i...

C语言编程
答:include <stdio.h>#include <stdlib.h>typedef struct{ long number; char name[10]; float score[3]; float average; int rank;}DAT;#define N (5)void func(DAT *d,int n);int main(){ DAT data[N]; int i; for(i=0;i<N;++i) { scanf("%ld ...