网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
08月31日漏签0天
c语言吧 关注:799,059贴子:4,359,539
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 14回复贴,共1页
<<返回c语言吧
>0< 加载中...

大神帮忙!!

  • 只看楼主
  • 收藏

  • 回复
  • Z543261
  • 酱油
    4
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
找错
#include <stdio.h>
#define N 100
double average(double a1[N],int l); /*声明求平均数的函数*/
double max(double a2[N],int l); /*声明求最高分的函数*/
double min(double a3[N],int l); /*声明求最低分的函数*/
void rank1(double a4[N],int l); /*声明排序函数(从低到高)*/
void rank2(double a5[N],int l); /*声明排序函数(从高到低)*/
void main()
{
double array[N],chinese[N],math[N],english[N],name[N]; /*定义array[N]用于存储学生各科成绩总和*/
int ch,choose,i,num;
double gpa,maxscore,minscore;
char ans='y';/*打印目录*/
while(ans=='y')
{ printf("****************欢迎使用学生成绩管理系统*************************\n");
printf("\n");
printf("1.成绩录入\t\t\t\t2.成绩排名(由高到低)\n");
printf("\n");
printf("3.成绩排名(由低到高)\t\t\t4.平均分\n");
printf("\n");
printf("5.最高分\t\t\t\t6.最低分\n");
printf("\n");
printf("****************请输入您的操作***********************************\n");
scanf("%d",&ch);
/*用于判断是否第一次选择的功能是1,并且接受用户输入的成绩,并计算总成绩*/
if(ch==1)
{
printf("请确定您要输入多少个学生的成绩:");
scanf("%d",&num);
printf("\n\n请录入成绩:\n\n");
for(i=0;i<num;i++)
{
printf("\n请输入学生%d的成绩\n",i+1);
printf("姓名:");
scanf("%s",&name[i]);
printf("语文:");
scanf("%lf",&chinese[i]);
printf("数学:");
scanf("%lf",&math[i]);
printf("英语:");
scanf("%lf",&english[i]);
array[i]=chinese[i]+math[i]+english[i];
}
break;
}
else
{
printf("\n\n目前还没有成绩,请您首先选择1进行成绩录入\n\n\n");
}
}
/*打印详细成绩*/
printf("\n学生成绩信息表:\n");
printf("*****************************************************************\n\n");
printf("学号\t\t姓名\t\t语文\t\t数学\t\t英语\t\t总成绩\n");
for(i=0;i<num;i++)
{
printf("%d \t\t%.11s\t\t%.1lf \t\t%.1lf \t\t%.1lf \t\t%.1lf\n",i+1,name[i],chinese[i],math[i],english[i],array[i]);
}
/*判断用户选择的功能,并调用相应的函数*/
while(ans=='y')
{
ans=' ';
printf("\n请选择系统功能:");
scanf("%d",&choose);
switch(choose)
{
case 2:
rank2(array,num);
break;
case 3:
rank1(array,num);
break;
case 4:
gpa=average(array,num);
printf("所有学生的平均成绩是: %.3lf\n",gpa);
break;
case 5:
maxscore=max(array,num);
printf("所有学生成绩中最高分是: %.1lf\n",maxscore);
break;
case 6:
minscore=min(array,num);
printf("所有学生成绩中最低分是: %.1lf\n",minscore);
break;
default:
printf("\n选择错误,请选择正确的功能\n");
}
printf("\n您是否要继续?(y/n) ");
fflush(stdin);
scanf("%c",&ans);
}
}
double average(double a1[N],int l)
{
int i;
double ave,sum=0;
for(i=0;i<l;i++)
{
sum=sum+a1[i];
}
ave=sum/l;
return ave; }
double max(double a2[N],int l)
{
int i;
double max=a2[0];
for(i=0;i<l;i++)
{
if(max<a2[i])
{
max=a2[i];
}
}
return max;
}
double min(double a3[N],int l)
{
int i;
double min=a3[0];
for(i=0;i<l;i++)
{
if(min>a3[i])
{
min=a3[i];
}
}
return min;
}
void rank1(double a4[N],int l)
{
int i,j;
double t;
for(j=0;j<l-1;j++)
{
for(i=0;i<l-j-1;i++)
{
if(a4[i]>a4[i+1])
{
t=a4[i];
a4[i]=a4[i+1];
a4[i+1]=t;
}
}
}
printf("从低到高的顺序为:\n");
for(i=0;i<l;i++)
{
printf("%.1lf ",a4[i]);
}
}
void rank2(double a5[N],int l)
{
int i,j;
double t;
for(j=0;j<l-1;j++)
{
for(i=0;i<l-j-1;i++)
{
if(a5[i]>a5[i+1])
{
t=a5[i];
a5[i]=a5[i+1];
a5[i+1]=t;
}
}
}
printf("从高到低的顺序为:\n");
for(i=l-1;i>=0;i--)
{
printf("%.1lf ",a5[i]);
}
}


  • CMShome
  • 强能力者
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
编译没错,但是执行的时候就不那么正常了。我只是看看,程序留下了。看出问题了
kou你


2025-08-31 13:01:26
广告
不感兴趣
开通SVIP免广告
  • CMShome
  • 强能力者
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼


  • CMShome
  • 强能力者
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼


  • CMShome
  • 强能力者
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼


  • CMShome
  • 强能力者
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
你妹,名字是字符你用string.h
虽然不知道这个和你的错误有木有关系但是
但是
蛋是
这个也是最大的错误
害的我游戏没打在这里玩你的程序


  • CMShome
  • 强能力者
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
你要是找出错误呢
你就给我一份正确的程序
记得@我


  • 飘零叶VS12
  • 低能力者
    5
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
把那个姓名的定义改为字符char name[N];
然后录入成绩后的输出改为下面这个:就是成绩的输出格式


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 14回复贴,共1页
<<返回c语言吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示