学习型 ASP/PHP/ASP.NET 主机 30元/年全能 ASP/PHP/ASP.NET 主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付
发新话题
打印

请大家给点指导,怎么这个程序不能运行??

请大家给点指导,怎么这个程序不能运行??

#include<stdio.h> main() { int t,p, i,j,a[10];

for(i=0;i<=9;i++) scanf ("%d ",&a[i]);

for(i=0;i<10;i++)

{ p=i;

for(j=i+1;j<10;j++)

if(a[p]<a[j])

p=j;

if(p!=i)

{t=a[i];a[i]=a[j];a[j]=t;} } for(i=0;i<=9;i++) printf("%d",a[i]);

}

TOP

if(a[p]<a[j])

这句 有问题.. 你定义的数组 是 a[0] 到a[9]

当i=9 时,,, j =10 a[ j] 不存在......

热爱编程........永不放弃.........

TOP

不是这样的吧??因为 N个数只需要N-1次排序呀!!那个J不需要达到10 呀!!因为排序到9时已经结束了呀!!我还是不太懂呀!!

TOP

你这个是不是排序的程序啊?把小的数放在开头,大的在后?但程序有问题,不能做到你要的功能!我改了你的程序,让你参考一下,不过不是你的那种方法。

#include<iostream.h> void main() { int t,i,j,a[10]; for(i=0;i<=9;i++) cin>>a[i]; for(i=0;i<10;i++) { for(j=0;j<10-i;j++) { if(a[j]>a[j+1]) { t=a[j+1]; a[j+1]=a[j]; a[j]=t; } } } cout<<endl; for(i=0;i<10;i++) cout<<a[i]<<endl; }

[此贴子已经被作者于2004-07-07 23:34:21编辑过]

TOP

scanf("%d ",&a[i]);有毛病,%d后不能有空格.该过之后就能运行了,不过运行的结果有错误,错误的原因就是一楼回复的内容.

TOP

发新话题