c语言简单小程序不知道bug在哪求助 - 爱问答

(爱问答)

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;
}

不错的,会编写程序,点赞。

相关标签:c语言

下一篇:web前端培训去哪儿?

上一篇:javascript注册信息代码功能实现

热门标签:
excel 网盘 破解 word dll
最新更新:
微软重新评估新的Outlook的使用时机 联想推出搭载联发科Helio G80芯片组的Tab M9平板 英特尔创新大赛时间确定! 微软Edge浏览器在稳定渠道中推出Workspaces功能 英伟达RTX4060TiGPU推出MaxSun动漫主题! 谷歌地图为用户提供了街景服务! GameSir 在T4 Kaleid中推出了一款出色的控制器! 微软开始在Windows 11 中测试其画图应用程序的新深色模式! LG电子推出全球首款无线OLED电视 英伟达人工智能芯片崭露头角! Steam Deck可以玩什么游戏-Steam Deck价格限时优惠 雷蛇推出CobraPro鼠标 Kindle电子阅读器可以访问谷歌商店吗 Windows10如何加入组策略 window10图片查看器怎么没有了?