| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 567 人关注过本帖
标题:[求助]为什么这段C语言有时行有时不行?
取消只看楼主 加入收藏
zzxjk
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2007-1-18
收藏
 问题点数:0 回复次数:1 
[求助]为什么这段C语言有时行有时不行?

/*请大家看看,这是一段输入学生成绩的程序,
结果是自动排列大小,统计出优,中,差等级,
但到了按大小排列时就出错,为什么?*/

#include <stdio.h>
#include <string.h>
sort(int a[],int n, char style)
{
int i,j,m,k,max,min,sum,aver,e1,e2,e3,e4,e5;
printf("请输入分数\n");
for(k=0;k<n;k++)
{
scanf("%d",&a[k]);
if (a[k]<0 || a[k]>100)
{ printf("error!\n");
scanf("%d",&a[k]);
}
}
for(j=0;j<n-1;j++)
{
for(i=0;i<=j;i++)
{
if(a[i]>a[i+1])
{
m=a[i];
a[i]=a[i+1];
a[i+1]=m ;
}
}

}


if (style=='a')
{
printf("从高到低\n");
for(k=n-1;k>=0;k--)
printf("%d ",a[k]);
printf("\n");
}
else if(style=='d')
{
printf("从低到高\n");
for (k=0;k<n;k++)
printf("%d ",a[k]);
printf("\n");
}

max=a[0];
min=a[0];
sum=0;
for(i=0;i<n;i++)
{
sum=sum+a[i];
if (max <=a[i]) max=a[i];
if (min >=a[i]) min=a[i];
}
printf("sum=%d\n max=%d\n max=%d\n aver=%d\n",sum,max,min,sum);
e1=e2=e3=e4=e5=0;
for(i=0;i<n;i++)
{
if (a[i]>=90) e1=e1+1;
else if(a[i]>=80 && a[i]<90) e2=e2+1;
else if(a[i]>=70 && a[i]<80) e3=e3+1;
else if(a[i]>=60 && a[i]<70) e4=e4+1;
else if(a[i]<60) e5=e5+1;
}
printf("优=%d,良=%d,中=%d,及格=%d,不及格=%d",e1,e2,e3,e4,e5 );
}

main()
{
char x;
int z;
int s[30];
printf("请输入学生个数\n");
scanf("%d",&z);
printf("输入小写字母d为降序方式,输入小写字母a为升序方式\n");
scanf("%s",&x);
if (x!='a' && x!='d')
{
printf("出错!一定要是a或d,请修正\n");
printf("输入d为降序方式,输入a为升序方式\n");
scanf("%s",x);
}
sort(s,z,x);
}

搜索更多相关主题的帖子: C语言 时行 
2007-01-18 22:44
zzxjk
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2007-1-18
收藏
得分:0 
1111111111111
图片附件: 游客没有浏览图片的权限,请 登录注册

图片附件: 游客没有浏览图片的权限,请 登录注册

2007-01-18 23:17
快速回复:[求助]为什么这段C语言有时行有时不行?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016412 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved