读书人

费解啦一个简单的c程序如何会得出这

发布时间: 2012-03-28 15:40:03 作者: rapoo

费解啦,一个简单的c程序怎么会得出这个结果,求高手指教!!!
#include<stdio.h>
#define N 10
#include<stdlib.h>
void main()
{
int a[N],i=0,t;
int k;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10;i++)
{
for(t=i+1;t<10;t++)
if(a[i]>a[t])
{
k=a[i];
a[i]=a[t];
a[t]=k;

}
else
continue;
}
printf("\n");
for(i=0;i<10;i++)
printf(" %d",a[i]);
system("pause");
}
我输入的是1,2,5,4,6,3,7,9,8,10为什么会得到这个结果???-858993460 -858993460 -858993460 -858993460 -858993460 -858993460 -858993460 -858993460 -858993460 1请按任意键继续. . .
我用的编译器为VC++2010 64位window7 一开始2G内存是能得到正确的结果,后来换成4G内存后就不行啦!求高手指教!!!

[解决办法]
你写的程序就不允许你这样输入,你只能用下面两种输入方式的一种
1:每个输入的数字中间用空格分开,最后按回车
2、每个输入的数字中间之接按回车
[解决办法]
楼主是不是误解
for(i=0;i<10;i++)
scanf("%d",&a[i]);
第二句话的逗号了啊?
1、每输入完一个数字就回车
2、每个数字之间用空格隔开

[解决办法]

C/C++ code
#include<stdio.h>#include<conio.h>void main(){    int a[10];    int i, j, temp;    for(i = 0; i < 10; i++)    {        scanf("%d", &a[i]);    }    for(i = 0; i < 9; i++)    {        for(j = 0; j < 10 - i; j++)        {            if(a[j] > a[j+1])            {                temp = a[j];                a[j] = a[j+1];                a[j+1] = temp;            }        }    }    for(i = 0; i < 10; i++)    {        printf("%d ", a[i]);    }    printf("\n");}
[解决办法]
输入:1 2 3 4 5 6 7 8 9 10
结果:1 2 3 4 5 6 7 8 9 10任意建继续

也就是2楼是正确的

读书人网 >C++

热点推荐