当前位置: 代码迷 >> C语言 >> 一个实现从小到大排列的程序,编译成功,为何运行结果错误?
  详细解决方案

一个实现从小到大排列的程序,编译成功,为何运行结果错误?

热度:200   发布时间:2006-08-14 12:15:40.0
我用的VC一点都有没问题
跟printf("/n");
getch();没关系,改不改没关系

----------------解决方案--------------------------------------------------------
是的没关系的,都可以运行的
----------------解决方案--------------------------------------------------------
程序是对的,没错的!!
----------------解决方案--------------------------------------------------------
你的函数sort()的作用是把10个数按从小到大的顺序重新排列

是逆序排列?

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


----------------解决方案--------------------------------------------------------



不好意思,我错了,是从小到大排列。不过由于程序在我的WIN--TC上运行时,总是编译成功,运行结果错误,所以,我没办法检验,楼上的朋友可以检验一下这个是不是逆序排列。

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


----------------解决方案--------------------------------------------------------
什么逆序排列?
你这个程序是从小到从排列的.
----------------解决方案--------------------------------------------------------
以下是引用qqq123在2006-8-14 14:08:45的发言:
你的函数sort()的作用是把10个数按从小到大的顺序重新排列

是逆序排列?

为什么结果错误..?

就是因为你的函数sort()的作用是把10个数按从小到大的顺序重新排列............


----------------解决方案--------------------------------------------------------





我错了……


----------------解决方案--------------------------------------------------------
#include <stdio.h>
#define SIZE 10
void Fun_sort (int *,int );
int main (void )
{
int a[SIZE];
unsigned int i;
printf ("Input %d numbers\n",SIZE);
for (i=0;i<SIZE;i++)
scanf ("%d",&a[i]);
printf ("Negative sequence output:\n");
for (i=SIZE;i>0;printf ("%d ",a[i]))
i--;
printf ("\n");
Fun_sort (a,SIZE);
return 0;
}
void Fun_sort (int *pt,int size)
{
unsigned int i,j;
int m=0;
for (i=0,j=i+1;j<=size;)
{
if (pt[i]<=pt[j])
j++ ;
else
{
m=pt[j];
pt[j]=pt[i];
pt[i]=m;
}
if (j==size)
{
i++;
j=i+1;
}
}
printf ("Sorted min to max:\n");
for (i=0;i<size;i++)
printf ("%d ",pt[i]);
printf ("\n");
return ;
}
----------------解决方案--------------------------------------------------------