用c语言设计一个程序统计一个班的学生成绩?
改好了,问题不大,我都写在注释里了:
#include
#include
#define N 35
#define COURSE 4
struct student
{
char num[10];/*如果把num当作字符串的话,不能用int,而是char数组。不然就用int num;*/
float score[4];
float sum;
float aver;
}
stu[N];
void main()
{
void Input(struct student stu[]);
void count(struct student stu[]);
void sort(struct student stu[]);
void find(struct student stu[]);
sqrt(1.0);/*不知你用什么编译器,如果TC的话,有个BUG。就是结构体里有float型的话,要加这句,不然会报错*/
Input(stu);
count(stu);
find(stu);
/*为什么你的程序里没有执行着几个函数咧?*/
}
void Input(struct student stu[])
{
int i,j;
printf("Enter No.and score as :score1 score2 score3 score4
");
for (i=0;i<N;i++)
{
scanf("%s",stu[i].num);/*用%s输入字符串*/
for (j=0;j<COURSE;j++)
{
scanf("%f",&stu[i].score[j]);
}
}
}
void count(struct student stu[])
{
float sum,aver;
int i,j;
for(i=0;i<N;i++)
{
sum=0;
for(j=0;j<5;j++)
sum+=stu[i].score[j];
aver=sum/4;
stu[i].sum=sum;
stu[i].aver=aver;
}
}
void sort(struct student stu[])
{
int i,j,k;
struct student temp;
for(i=0;i<N;i++)
{
k=i;
for(j=i+1;j<N;j++)
if(stu[k].sum<stu[j].sum)k=j;
if(k!=i)
{
temp=stu[i];
stu[i]=stu[k];
stu[k]=temp;
}
}
printf("number score1 score2 score3 score4 sum average
");
for(i=0;i<N;i++)
printf("%-8s%-8.2f%-8.2f%-8.2f%-8.2f%-8.2f%-8.2f
",stu[i].num,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].score[3],stu[i].sum,stu[i].aver);
/*输出学号也用%s*/
}
void find(struct student stu[])
{
int flag=0;
int i,j;
sort(stu) /*;//stu[];)*/
printf("the student of one score>=90 and 前五名:
");
/*这两句调换一下位置,不然输出不太好*/
for(i=0;i<5;i++)
{
int sum=0;
for(j=0;j<4;j++)
if(stu[i].score[j]>=90 )sum++;
if(sum)
{
flag=1;
printf("%-8s%-8.2f%-8.2f%-8.2f%-8.2f%-8.2f%-8.2f
",stu[i].num,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].score[3],stu[i].sum,stu[i].aver);
}
}
if(flag==0)
printf(" not exist!
");
/*这个判断放在循环体之外,不然会输出好多" not exist!"*/
}
另外,注意:
1.个班的学生成绩最多35人。你的咋是固定35人捏?
2.第四点要求:根据用户要求输入课程号显示该门课程成绩在90以上且总分在前五的学生的 学号和各科成绩,平均分和总分
你似乎没有看清题意吧?是要用户输入课程号耶。
这些你自己应该知道怎么做吧?
仅供参考:
#include "stdio.h"#define N 35struct student{int num;//学号char name[8];//姓名int nannv;//性别int chines;//语文成绩int math;//数学成绩int English;//英语成绩int physics;//物理成绩int sum;//总分double avr;//平均分}stu[N];void input(int n){int i;for(i=0;i<n;i++){int sum=0;double avr=0.0;printf("请输入第%d个学生信息
",i+1);printf("请输入学号:");scanf("%d",&stu[i].num);printf("请输入姓名:");scanf("%s",stu[i].name);printf("请输入性别:");scanf("%d",&stu[i].nannv);printf("请输入语文成绩:");scanf("%d",&stu[i].chines);printf("请输入数学成绩:");scanf("%d",&stu[i].math);printf("请输入英语成绩:");scanf("%d",&stu[i].English);printf("请输入物理成绩:");scanf("%d",&stu[i].physics);//计算总分和平均分stu[i].sum = stu[i].chines+stu[i].math+stu[i].English+stu[i].physics;stu[i].avr = (double)(stu[i].sum*1.0/4);}}void output(int n){int i;for(i=0;i<n;i++){printf("------------------------------------------------------------------
");printf("第%d名:
",i+1);printf("学号:%d姓名:%s性别:%d
",stu[i].num,stu[i].name,stu[i].nannv);printf("语文成绩:%d数学成绩:%d英语成绩:%d物理成绩:%d
",stu[i].chines,stu[i].math,stu[i].English,stu[i].physics);printf("总分:%d平均分:%.2f
",stu[i].sum,stu[i].avr);printf("------------------------------------------------------------------
");}}void sort(int n){int i,j;struct student st;//冒泡排序for(i=0;i<n-1;i++){for(j=0;j<n-i-1;j++){if(stu[j].sum<stu[j+1].sum){st = stu[j];stu[j] = stu[j+1];stu[j+1] = st;}}}}void main(){int n;printf("请输入学生人数:");scanf("%d",&n);input(n);//输入学生信息sort(n);//按总成绩排序printf("排名信息如下:
");output(n);//输出学生信息}
#include<stdio.h>
#include<stdlib.h>
//定义一个学生结构体数组
struct Student{
int id;
double score;
}Student[100];
//记录实际导入学生个数
int len = 0;
//求最高分
void getmax() {
int maxid = 0;
double maxscore = -1;
for (int i = 0; i < len; i++) {
if (Student[i].score > maxscore) {
maxscore = Student[i].score;
maxid = Student[i].id;
}
}
printf("班级最高分为:%.2lf学号是:%d
", maxscore, maxid);
}
//求最低分
void getmin() {
int minid = 0;
double minscore = 101;
for (int i = 0; i < len; i++) {
if (Student[i].score < minscore) {
minscore = Student[i].score;
minid = Student[i].id;
}
}
printf("班级最低分为:%.2lf学号是:%d
", minscore, minid);
}
//求总分
double getsum() {
double sum = 0;
for (int i = 0; i < len; i++) {
sum += Student[i].score;
}
return sum;
}
//求平均分
double getave() {
double ave = 0;
return getsum() / len;
}
//导入学生信息
void input() {
int id = 0;
double score = 0;
while (1) {
printf("请输入学生学号:");
scanf_s("%d", &id);
if (id == -1) { break; }
printf("请输入学生成绩:");
scanf_s("%lf", &score);
Student[len].id = id;
Student[len].score = score;
len++;
}
printf("信息导入完毕!
");
}
int main() {
input();
printf("全班总分为:%.2lf
", getsum());
printf("全班平均分为:%.2lf
", getave());
getmax();
getmin();
return 0;
}
注:此代码运行于VS2017,如果在VC6.0中运行,可将scanf_s改成scanf
并且for(int i=0;i<len;i++){xxx}改成int i=0;for(i=0;i<len;i++){xxx}即可正常运行
程序运行测试图如下:
代码如下:
注:此代码运行于VS2017,如果在VC6.0中运行,可将scanf_s改成scanf
并且for(int i=0;i<len;i++){xxx}改成int i=0;for(i=0;i<len;i++){xxx}即可正常运行
#include<stdio.h>
#include<stdlib.h>
//定义一个学生结构体数组
struct Student{
int id;
double score;
}Student[100];
//记录实际导入学生个数
int len = 0;
//求最高分
void getmax() {
int maxid = 0;
double maxscore = -1;
for (int i = 0; i < len; i++) {
if (Student[i].score > maxscore) {
maxscore = Student[i].score;
maxid = Student[i].id;
}
}
printf("班级最高分为:%.2lf学号是:%d
", maxscore, maxid);
}
//求最低分
void getmin() {
int minid = 0;
double minscore = 101;
for (int i = 0; i < len; i++) {
if (Student[i].score < minscore) {
minscore = Student[i].score;
minid = Student[i].id;
}
}
printf("班级最低分为:%.2lf学号是:%d
", minscore, minid);
}
//求总分
double getsum() {
double sum = 0;
for (int i = 0; i < len; i++) {
sum += Student[i].score;
}
return sum;
}
//求平均分
double getave() {
double ave = 0;
return getsum() / len;
}
//导入学生信息
void input() {
int id = 0;
double score = 0;
while (1) {
printf("请输入学生学号:");
scanf_s("%d", &id);
if (id == -1) { break; }
printf("请输入学生成绩:");
scanf_s("%lf", &score);
Student[len].id = id;
Student[len].score = score;
len++;
}
printf("信息导入完毕!
");
}
int main() {
input();
printf("全班总分为:%.2lf
", getsum());
printf("全班平均分为:%.2lf
", getave());
getmax();
getmin();
return 0;
}
程序运行测试图如下:
设计一个学生成绩统计程序如下,一,输入三个学生密门课的成绩,二,计算班级平均分三统计0~59,60~69,70~79,80~89,90~100个区间的人数四。计算大于等于平均分的人数。
设计一个程序,输入一个十进制整数,输出相应的十六进制数。设计一个...
\/\/C语言实现:include<stdio.h> void main(){char b[]="0123456789ABCDEF";long int n,x;int i,a[40];printf("\\n Please input n=");scanf("%ld",&n);x=n;i=0;while(x>0){a[i]=x%16;x=x\/16;i++;} while(i>0){printf("%c",b[a[i-1]]);i--;} printf("\\n")...
为一个冒泡排序程序设计测试用例。并测试之(C语言编程)
以下是一个冒泡排序程序的示例代码,它可以对输入的任意数量整数进行排序:```c include <stdio.h> void bubble_sort(int list[], int n) { int i, j, temp;for(i = 0; i < n-1; i++) { for(j = 0; j < n-i-1; j++) { if(list[j] > list[j+1]) { temp = list[...
c语言程序大神帮忙设计一下?
下面是代码:include <stdio.h> include <malloc.h> include <string.h> include <windows.h> include <conio.h> define PATH "C:\\\\worker.data"typedef struct worker\/\/职员 { int id;char name[20];int sex;\/\/0:女。1:男 int byy;int bmm;int bdd;}WR;int write2File(char path[...
C语言中,设计一个程序,把任意个浮点数读入数组里,然后计算平均值_百 ...
1、规定了数量n=0,不符合题目要求输入任意数量的浮点数;而且直接在对i的循环中规定i<n,n的值为0,没有变化,也是错的。2、没有逐一读取输入数。这个程序基本上全错了。注意:C语言通过编译,并不代表程序正确,格式有错误有时也能通过编译,如果算法错误,程序是不会替你判定的。往往会有通过...
C语言高手!!帮忙写个最短路径程序!!!
这是我们的一个实验,你可以参考一下 一、 需求分析 【问题描述】设计一个校园导游程序,为来访的客人提供各种信息查询服务。【基本要求】(1) 设计你所有学校的校园平面图,所含景点不少于10个。以图中顶点表示校内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。(2...
求助:c语言程序设计 输入一个2-9之间任意一个数,然后利用循环嵌套,输出...
这个可以这样实现先读入一个数n,然后设计一个二重循环,外层循环从1一直到n,也就是一共输出有n行。然后内循环是从1开始,一直到本行的行数为止进行循环,每次执行内循环体就输出一个乘法等式,当内循环结束的时候进行换行。整个程序就实现了题目所规定的要求。main(){int i,j,n;scanf (“%d”,...
C语言:班上第一组有5名同学,请设计一个程序求出这5名同学的平均分,最高...
参考代码如下:include<stdio.h> float a[5];int main(){ int i;float sum=0,max,min;for(i=0;i<5;++i)scanf("%f",&a[i]);max=min=a[0];for(i=0;i<5;++i){ sum+=a[i];max=max>a[i]?max:a[i];min=min
c语言模块化程序设计是将一个大的任务分解成若干个小任务吗?
选A。一个C程序由一个主函数和若干个其他函数组成。若干个的意思就是可以有0个及以上个。c语言的程序模块称为函数。模块化程序设计是将一个大的任务分解成若干个小任务,再将小任务分解成更小的任务,直到每一个任务都只完成一个独立功能。这样的每个任务都叫做模块,c语言中模块是用函数来实现。
C语言程序设计:编写程序,输入一个正整数,统计该整数的位数并计算其各个...
include <stdio.h> int main(){ int a, b, i, t;int k = 0, sum = 0;scanf("%d", &a); \/\/输入整数a t = a;if(a \/ 10 == 0){ k = 1;sum = a;printf("%d\\n", k);printf("%d\\n", sum);} else { while(a \/ 10 != 0){ a = a \/ 10; \/\/每除10,就有...
试用C语言设计一个程序,程序的功能是接收任意输入一个算术表达式,判断...
\/\/最近的栈作业~#include<iostream>using namespace std;class Stack{private:int maxSize;int top;int *p;public:Stack(int size){maxSize=size;top=-1;p=new int[maxSize];}~Stack(){delete [] p;}void Clear() \/\/清空栈{top=-1;}bool Push(const int value) \/\/压入{if(top...
薄哗益脑: 改好了,问题不大,我都写在注释里了:#include<stdio.h> #include<math.h> #define N 35 #define COURSE 4struct student {char num[10];/*如果把num当作字符串的话,不能用int,而是char数组.不然就用int num;*/float score[4];float sum...
汉中市18767367626: C语言一道题目,求教教3.统计一个班的学生成绩.要求程序具有如下功能:(1) 每个学生的学号和四门功课的成绩从键盘读入.(2) 计算每个学生的总分和... - ?
薄哗益脑:[答案] #include #define NULL0#define LEN sizeof(struct student)struct student{ long num; char name[20]; float score1; float score2; float score3; float score4; float score5; float c; float z; struct...
汉中市18767367626: 设计一个C语言程序,要求能求一个班级学生的总分和平均分 - ?
薄哗益脑: 用malloc 函数,用于申请内存.首先先输入学生数n,然后申请一片内存,如下: #include<stdio.h> #include<stdlib.h> int main() {int n,i;float *score;float sum=0.0,ave=0.0;printf("请输入班级学生人数:");scanf("%d",&n); score=(...
汉中市18767367626: 学生成绩统计的编程题目C语言求帮忙~~谢啦从键盘输入一个班(全班 ?
薄哗益脑: 给你提供一个思路: 1,建立一个含有30个节点的双向链表. 2,从键盘每输入一个学生的成绩,就把成绩存入链表里. 3,链表节点有成绩,上指针,下指针,学生姓名字符串数组. 4,当输入负值后,扫描链表,进行对成绩的各项操作即可.
汉中市18767367626: 一个c语言的学生成绩统计程序 功能1输入一个班学生基本信息及对应的4门课程的成绩 - ?
薄哗益脑: 定义一个结构体去存,按这样写: typedef struct Mycourse {float c1; float c2; float c3; float c4;}Mycourse;用的时候就定义 Mycourse[学生人数] 这样一个数组, 输入就是scanf("%f",&Mycourse[i].c2) 表示把输入数据存入第i个学生的第二门课 输出是printf("%f",Mycourse[i].c2) 表示输出第i个学生第2门课的成绩祝题主好运
汉中市18767367626: 求教C语言统计一个班的平均分 最低分 最高分 程序怎么写 我是一点都不懂的 求高手指导 表格随便您怎么找个 - ?
薄哗益脑: 我写的代码如下: #include <stdio.h> #include<stdlib.h> int compare(const void*a,const void*b){return *(int*)a-*(int*)b;} //排序方式以升序排序 int main(){int m,i;printf("请输入班级的人数");scanf("%d",&m);int mark[m],marks=0; //定...
汉中市18767367626: C语言程序设计:从键盘输入一个班(不超过30人)学生某门课的成绩 - ?
薄哗益脑: #include#define n 30 typedef struct student { char name[10]; int score; }stu; void main() {stu s[n]; int n=0; int i; int n1=0; int n2=0; int n3=0; int n4=0; int n5=0; int n6=0; int total=0; float aver; printf("请输入学生姓名与成绩:"); do { scanf("%s...
汉中市18767367626: C语言设计一个程序,统计一个班(最多有35人)的学生成绩(不用链表,用结构体) - ?
薄哗益脑: //已调试成功#include #define N 35 void main() { int i,n=0; int student[N],sum=0; printf("请输入学生成绩(以-1输入结束)\n"); for(i=0;i { scanf("%d",&student[i]); if(student[i]==-1) { break; } n++; } for(i=0;i { sum += student[i]; } printf("%d个学生的总成绩为:%d\n",n,sum); }
汉中市18767367626: 编写一个C语言程序,统计一个班(最多50人)的学生成绩,要求实现以下功能: - ?
薄哗益脑: include<stdio.h> struct student//结构体 { int num;//数量 char name[10];//姓名 float grade[6];//记录各科成绩 }a[5];//这种结构体类型的数组(只能有五学生) input() { int i; for(i=0;i<5;i++)//每次读入五个学生的数据 { printf("\nplease input the ...
汉中市18767367626: c语言.学生成绩统计;一个班50人门课,求每个人的总分和平均分.要求写3个函数;一个完成输入数据;一个求总分和平均分;一个完成输入数据. - ?
薄哗益脑: 程序如下,输入4个成绩回车一次,调试通过: #include"stdio.h" void scan(int a[][6],int n) { int i; printf("请输入第%d人成绩:\n",n+1); for(i=0;i<4;i++) scanf("%d",&a[n][i]); } void ave(int a[][6],int n) { int i; for(i=0;i<4;i++) a[n][4]+=a[n][i]; a[n][...