代码运行结果不同
问题:键盘获取数值 按照个位数一定顺序排序
#include
int main()
{
int a[10];
int b[10];
int i,j;
int temp;
printf("请输入10个数字:");
for (i = 0;i < 10;i++)
{
scanf("%d",&a[i]);
b[i] = a[i] % 10;
}
for (i = 0;i < 9;i++)
{
for (j = 0;j < 9 - i;j++)
{
if (b[j] > b[j+1])
{
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
for(i = 0;i < 10;i++)
{
printf("%d\t",a[i]);
}
return 0;
}
结果为:
答案是:
#include
int main()
{
int a[10];
int i,j,t;
printf("请输入十个两位正整数:\n");
for (i=0;i<10;i++)
{
scanf("%d",&a[i]);
}
for (i=0;i<9;i++)
{
for (j=0;j<9-i;j++)
{
if (a[j]%10>a[j+1]%10) //利用冒泡排序,并改变if条件即可实现
{
t=a[j]; a[j]=a[j+1]; a[j+1]=t; //若不熟悉多去看冒泡排序
}
}
}
for (i=0;i<10;i++)
{
printf("%d\t",a[i]);
}
return 0;
}
结果为:
只是添加了个新的数组,并且将数组的其他条件相同,为什么运行结果不同?