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

/*
请大家看看,这是一段输入学生成绩的程序,结果是自动排列大小,统计出优,中,差等级,但
到了按大小排列时就出错,为什么
*/
#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>a[i+1])
{
m=a;
a=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;
if (max <=a) max=a;
if (min >=a) min=a;
}
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>=90) e1=e1+1;
else if(a>=80 && a<90) e2=e2+1;
else if(a>=70 && a<80) e3=e3+1;
else if(a>=60 && a<70) e4=e4+1;
else if(a<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);
}

请大家看看,这是一段输入学生成绩的程序,结果是自动排列大小,统计出优,中,差等级,但
到了按大小排列时就出错,为什么
搜索更多相关主题的帖子: 时行 
2007-01-18 22:57
google
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:22
帖 子:3419
专家分:23
注 册:2005-11-1
收藏
得分:0 

转到C语言区去吧


祝天下所有母亲幸福安康!~
2007-01-18 23:33
人妖123
Rank: 1
等 级:新手上路
威 望:2
帖 子:462
专家分:0
注 册:2006-11-8
收藏
得分:0 

你自归家我自归,说着如何过,我断不思量,你莫思量我。将你从前予我心,付与他人可。
2007-01-18 23:35
神秘失恋
Rank: 1
等 级:新手上路
帖 子:663
专家分:0
注 册:2007-1-6
收藏
得分:0 


上帝之手.........
2007-01-18 23:46
maoguoqing
Rank: 6Rank: 6
来 自:重庆
等 级:贵宾
威 望:28
帖 子:2980
专家分:19
注 册:2005-12-5
收藏
得分:0 
你这个程序编译都通不过吧,a>a[i+1] 一个数组和它的一个元素能比较吗?
比较的部分这样写。。

for(j=1;j<n-1;j++)
{
for(i=0;i<j;i++)
{
if(a[j]<a[i])
{
m=a;
a=a[i+1];
a[i+1]=m ;
}
}

}

天行健,君子以自强不息!!QQ:68660681
2007-01-19 11:56
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 

水区还是灌水的好


可惜不是你,陪我到最后
2007-01-19 12:39
快速回复:[求助]借个地方问一下,我这程序有时行又时不行
数据加载中...
 
   



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

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