你的数组越界了a[2]实际能用的就只有a[0],a[1],但是你下面for虚幻scanf已经超出范围了,用到了a[2],你把int a[2]改成int a[3]试试。
如果觉得可以请采纳一下吧
错很多。除了前面的人提到的,我写一下其他关键地方
for(int i = 0; i <=1; i++){
for(int j = i; j <= 1; j++){//这句错的离谱
if(a[j]>a[j+1]){//刚学不要去括号,相信我,去括号带来的麻烦远比方便要多
int temp = a[j];
a[j] = a[j+1];
a[j+1]=a[j];
}
}
}
测试了一下,最内层循环里的if语句少了一对花括号{},加上就正常了。以下是加上括号的代码:
// sort.cpp : 定义控制台应用程序的入口点。
#include "stdafx.h"
int _tmain(int argc, _TCHAR* argv[])
{
int i,j,t,a[2];
printf("请输入三个整数并以空格隔开");
for(i=0;i<=2;i++)
scanf("%d",&a[i]);
for(i=0;i<=1;i++){
for(j=0;j<=1-i;j++){
if(a[j]>a[j+1]){
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
for(i=0;i<=2;i++)
printf("%d ",a[i]);
return 0;
}