c语言简单小程序不知道bug在哪求助
#include<stdio.h>
#include<stdlib.h>
#include <conio.h>
#include<string.h>
#include<Windows.h>
#define N 30
void rank1(int Id[],int score[],int n);
void rank2(int Id[],int score[],int n);
void record(int score[],int n);
int all(int score[],int n);
int read(int Id[],int score[]);
int find(int Id[],int n,int a);
int seek(int Id[],int n,int a);
int n,Id[N],score[N],sum,i,x,ch;
void menu()
{system("cls");
printf(" ");
printf("〓〓〓〓〓〓〓〓〓〓 ☆ 学 生 成 绩 管 理 系 统 ☆ 〓〓〓〓〓〓〓〓〓〓 ");
printf("〓〓〓〓〓〓〓★★★★★ ★★★★★★★ ★★★★★〓〓〓〓〓〓〓 ");
printf("〓〓〓〓〓〓〓〓〓★ ☆ 1.录入每个学生的姓名,学号和考试成绩 ☆ ★〓〓〓〓〓〓〓〓〓 ");
printf("〓〓〓〓〓〓〓〓〓★ ☆ 2.计算课程的总分和平均分 ☆ ★〓〓〓〓〓〓〓〓〓 ");
printf("〓〓〓〓〓〓〓〓〓★ ☆ 3.按成绩由高到低排出成绩表 ☆ ★〓〓〓〓〓〓〓〓〓 ");
printf("〓〓〓〓〓〓〓〓〓★ ☆ 4.按学号有小到大排出成绩表 ☆ ★〓〓〓〓〓〓〓〓〓 ");
printf("〓〓〓〓〓〓〓〓〓★ ☆ 5.按学号或姓名查询学生排名及考试成绩 ☆ ★〓〓〓〓〓〓〓〓〓 ");
printf("〓〓〓〓〓〓〓〓〓★ ☆ 6.按成绩分类并统计百分比 ☆ ★〓〓〓〓〓〓〓〓〓 ");
printf("〓〓〓〓〓〓〓〓〓★ ☆ 7.输出每个学生学号、成绩、总分和均分 ☆ ★〓〓〓〓〓〓〓〓〓 ");
printf("〓〓〓〓〓〓〓〓〓★ ☆ 0.退出程序 ☆ ★〓〓〓〓〓〓〓〓〓 ");
printf(" 请选择: ");
}
void Input()
{
scanf_s("%d",&ch);
printf(" ");
switch(ch)
{case 1:
n=read(Id,score);
printf(" ");
printf("学生有%d人 ",n);
printf(" ");
break;
case 2:
sum=all(score,n);
printf(" ");
printf("课程总分为:%d ",sum);
printf("课程平均分为:%d ",sum/n);
printf(" ");
break;
case 3:
rank1(Id,score,n);
printf(" ");
printf(" 学号 成绩 排名 ");
for(i=0;i<n;i++)
printf(" %d %d %d ",Id[i],score[i],i+1);
break;
case 4:
rank2(Id,score,n);
printf(" 学号 成绩 排名 ");
for(i=0;i<n;i++)
printf(" %d %d %d ",Id[i],score[i],i+1);
break;
case 5:
{int a;
printf("请输入你要查询的学号:");
scanf_s("%d",&a);
x=find(Id,n,a);
printf(" 学号 成绩 ");
printf(" %d %d ",Id[x],score[x]);}
printf(" ");
break;
case 6:
record(score,n);
break;
case 7:
printf(" 学号 成绩 ");
for(i=0;i<n;i++)
printf(" %d %d ",Id[i],score[i]);
sum=all(score,n);
printf(" 课程总分为:%d ",sum);
printf(" 课程平均分为:%d ",sum/n);
break;
case 0:
exit(0);
break;
default:
printf("输入错误 ");break;
}_getch();menu();
scanf_s("%d",&n);}
int main()
{return 0;}
int read(int Id[],int score[]) //程序1
{int *p1 = Id, *p2 = score,i=-1;
do{ i++;
printf("请输入学号和成绩: /n");
scanf_s("%d%d",&Id[i],&score[i]);
}while(Id[i]>=0&&score[i]>=0);
return i;
}
int all(int score[],int n) //程序2
{int i,sum=0;
for(i=0;i<n;i++)
sum =sum + score[i];
return sum;
}
void rank1(int Id[],int score[],int n) //程序3
{int k,j,temp1,temp2,*p1=Id,*p2=score;
for(k=0;k<n-1;k++)
for(j=k+1;j<n;j++)
{if(score[j]>score[k])
{temp2=score[j];score[j]=score[k];score[k]=temp2;
temp1=Id[j];Id[j]=Id[k];Id[k]=temp1;}
}
}
void rank2(int Id[],int score[],int n) //程序4
{int k,j,temp1,temp2,*p3=Id,*p4=score;
for(k=0;k<n-1;k++)
for(j=k+1;j<n;j++)
{if(Id[j]<Id[k])
{temp1=score[j];score[j]=score[k];score[k]=temp1;
temp2=Id[j];Id[j]=Id[k];Id[k]=temp2;}
}
}
int find(int Id[],int n,int a)
{ int i;
for(i=0;i<n;i++)
if(a==Id[i])
return i;
return 0;
}
void record(int score[],int n) //程序6
{ int i,a1=0,a2=0,a3=0,a4=0,a5=0;
for(i=0;i<n;i++)
if(score[i]>=90&&score[i]<=100) a1++; printf("优秀人数:%d人 百分比:%.1f%% ",a1,(float)a1/n*100);
for(i=0;i<n;i++)
if(score[i]>=80&&score[i]<90) a2++; printf("良好人数:%d人 百分比:%.1f%% ",a2,(float)a2/n*100);
for(i=0;i<n;i++)
if(score[i]>=70&&score[i]<80) a3++; printf("中等人数:%d人 百分比:%.1f%% ",a3,(float)a3/n*100);
for(i=0;i<n;i++)
if(score[i]>=60&&score[i]<69) a4++; printf("及格人数:%d人 百分比:%.1f%% ",a4,(float)a4/n*100);
for(i=0;i<n;i++)
if(score[i]>=0&&score[i]<59) a5++; printf("不及格人数:%d人 百分比:%.1f%% ",a5,(float)a5/n*100);
}
你的
int main()
{return 0;}
中,main()函数什么都没有做,是空的啊
改为
int main()
{
menu();
Input();
return 0;
}
不错的,会编写程序,点赞。
下一篇:web前端培训去哪儿?