| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1431 人关注过本帖
标题:一个实现从小到大排列的程序,编译成功,为何运行结果错误?
只看楼主 加入收藏
皮皮鲁
Rank: 1
等 级:新手上路
帖 子:46
专家分:0
注 册:2006-7-27
收藏
 问题点数:0 回复次数:18 
一个实现从小到大排列的程序,编译成功,为何运行结果错误?
这是一个实现逆序排列的程序,编译通过了,但输入10个数运行时,出现了比较奇怪的结果。不知道为什么,请大家看看这个程序的问题出在哪里?


void sort(int array[],int n)
{
int i,j,k,t;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
if(array[j]<array[k])k=j;
t=array[k];array[k]=array[i];array[i]=t;}
}
main()
{
int a[10],i;
printf("enter the array/n");
for(i=0;i<10;i++)
scanf("%d ",&a[i]);
sort(a,10);
printf("the sorted arrray:/n");
for(i=0;i<10;i++)
printf("%d ",a[i]);
printf("/n");
getch();
}

[此贴子已经被作者于2006-8-14 16:43:25编辑过]

搜索更多相关主题的帖子: 排列 从小到大 编译 结果 
2006-08-14 11:04
ridwsc
Rank: 1
等 级:新手上路
帖 子:168
专家分:0
注 册:2006-8-10
收藏
得分:0 
我先大概看了一下程序,
你用的换行错了,是"\n";

中国加油,加油,加油~~~~~ 我行~~我可以~~C
2006-08-14 11:11
ridwsc
Rank: 1
等 级:新手上路
帖 子:168
专家分:0
注 册:2006-8-10
收藏
得分:0 

#include <stdio.h>
void sort(int array[],int n)
{
int i,j,k,t;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
if(array[j]<array[k])k=j;
t=array[k];
array[k]=array[i];
array[i]=t;
}
}

void main()
{
int a[10],i;
printf("enter the array\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]); //这里"%d "的空格不要
sort(a,10);
printf("the sorted arrray:\n");
for(i=0;i<10;i++)
printf("%d ",a[i]);
printf("\n");
getchar(); //我把getch改成了
}
我稍微改了一下,可以运行的,结果也对的


中国加油,加油,加油~~~~~ 我行~~我可以~~C
2006-08-14 11:15
yuleol
Rank: 1
等 级:新手上路
帖 子:58
专家分:0
注 册:2005-12-10
收藏
得分:0 

df

[此贴子已经被作者于2006-8-14 11:24:24编辑过]


兴趣是我的源动力!
2006-08-14 11:23
ridwsc
Rank: 1
等 级:新手上路
帖 子:168
专家分:0
注 册:2006-8-10
收藏
得分:0 
楼上的,DF什么意思

中国加油,加油,加油~~~~~ 我行~~我可以~~C
2006-08-14 11:24
yuleol
Rank: 1
等 级:新手上路
帖 子:58
专家分:0
注 册:2005-12-10
收藏
得分:0 
没什么意思,

本来想说点什么,但让你抢先了,所以只好~

兴趣是我的源动力!
2006-08-14 11:39
jiahu0215178
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2006-8-12
收藏
得分:0 
getch()这个函数通常是用在windows下的那个c编译器,放在后面用于暂停看结果的。
为什么要改成getchar();
2006-08-14 11:39
皮皮鲁
Rank: 1
等 级:新手上路
帖 子:46
专家分:0
注 册:2006-7-27
收藏
得分:0 

多谢朋友们指点!由于是自学C,没有什么基础,没注意换行也弄错了,见笑了。

我用的是WIN--TC,检验3楼朋友的改正后的程序时,发现运行结果还是错的,它出现一些962、2002等奇怪的数字。请教这是什么原因啊?

[此贴子已经被作者于2006-8-14 11:42:19编辑过]

2006-08-14 11:41
yuleol
Rank: 1
等 级:新手上路
帖 子:58
专家分:0
注 册:2005-12-10
收藏
得分:0 
以下是引用皮皮鲁在2006-8-14 11:41:26的发言:

多谢朋友们指点!由于是自学C,没有什么基础,没注意换行也弄错了,见笑了。

我用的是WIN--TC,检验3楼朋友的改正后的程序时,发现运行结果还是错的,它出现一些962、2002等奇怪的数字。请教这是什么原因啊?

不可能吧,我也用WIN-TC一却正常啊!


兴趣是我的源动力!
2006-08-14 11:46
ridwsc
Rank: 1
等 级:新手上路
帖 子:168
专家分:0
注 册:2006-8-10
收藏
得分:0 
因为大家用的软件不一样,所以,会出现一些小问题,
我用的是VC++

中国加油,加油,加油~~~~~ 我行~~我可以~~C
2006-08-14 11:59
快速回复:一个实现从小到大排列的程序,编译成功,为何运行结果错误?
数据加载中...
 
   



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

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