当前位置: 代码迷 >> C语言 >> [讨论]关于数组排序的问题
  详细解决方案

[讨论]关于数组排序的问题

热度:127   发布时间:2006-01-23 08:26:00.0
[讨论]关于数组排序的问题
main()
{int a[10],i,j=0,n,temp;
printf("请输入数组元素的个数:\n");
scanf("%d",&n);
if(n>10)
printf("输入错误");
for(i=0;i<n;i++)
{printf("请输入%d数组元素",i);
scanf("%d\n",&a[i]);
}
getch();
j=a[0];
for(i=1;i<n;i++)
if(j>a[i])
temp=a[i];a[i]=j;j=temp;
for(i=0;i<n;i++)
printf("%d",a[i]);
getch();
}
----------------解决方案--------------------------------------------------------
以下是引用zhangjuan在2006-1-23 8:26:00的发言:
#include "stdio.h"
main()
{ int a[10],i,j,n,temp;
printf("请输入数组元素的个数:\n");
scanf("%d",&n);
if(n>10)
printf("输入错误");
for(i=0;i<n;i++)
{printf("请输入%d数组元素",i+1);
scanf("%d",&a[i]);
}
for (i=0;i<n-1;i++)
for (j=0;j<n-i;j++)
if (a[j]>a[j+1])
{temp=a[j];a[j]=a[j+1];a[j+1]=temp;}
for (i=0;i<n;i++)
printf ("%d ",a[i]);
getch();
getch();
}

你的程序没有排序。
冒泡法
scanf("%d\n",&n);里面的\n不要,会出错的。


----------------解决方案--------------------------------------------------------
二楼的算法好奇怪啊 不是冒泡吧

do
{
flag=0;
for (i=0;i<n-2;i++)
if(a[i+1]>a[i])
{
t=a[i];a[i]=a[i+1];a[i+1]=t;
flag=1;
}
while(flag) ;



还有,为什么那里不能有\N?
----------------解决方案--------------------------------------------------------
以下是引用zhangjuan在2006-1-23 8:26:00的发言:
main()
{int a[10],i,j=0,n,temp;
printf("请输入数组元素的个数:\n");
scanf("%d",&n);
if(n>10)
printf("输入错误"); //这里后面要加一句return;
for(i=0;i<n;i++) //这里直接i<10就好了
{printf("请输入%d数组元素",i);
scanf("%d\n",&a[i]);
}
getch();
j=a[0];
for(i=1;i<n;i++) //同上
if(j>a[i])
temp=a[i];a[i]=j;j=temp;//不明白是什么比较法,没有学过排序,这里看起来是交换2个数的值
//void change(int *ione, int *itwo) { int temp; temp=*ione; *ione=*itwo; *itwo=temp;}
// change(&i, &j);
for(i=0;i<n;i++) //同上
printf("%d",a[i]);
getch();
}


----------------解决方案--------------------------------------------------------
三楼,你的方法是冒泡法,我的方法是冒泡法;
你的算法是把最小值沉到a[n];没有排序功能;
我的算法是通过使用循环冒泡,
把最大值沉到a[n]
倒数第二大的值沉到a[n-i]
……
依此类推
从而实现由小到大的排序。
在我学的C中,scanf函数双引号内的格式串除格式说明外,如果还有其他字符,则在输入数据时要求按一一对应的位置原样输入这些字符。所以如果末尾有\n的话,你在输入数字的时候理论是要按两次回车才能输入这个数字,不过我试过按两次回车,却不能成功输入,必须要 “数字1 回车 任意字符 回车”才只能输入数字1。这样是很容易引起混乱的。
----------------解决方案--------------------------------------------------------

  相关解决方案