#include <stido.h>
int main()
{
int a[] = {12, 31, 14, 15, 29, 10, 23, 89, 112, 108};
for(int i = 0; i < 10; i++)
{
for (int j = 0; j < 10- i- 1; j++)
{
if (a[j] > a[j+1])
{
int tmp = a[j];
a[j] = a[j+1];
a[j+1] = tmp;
printf("%d %d ", a[j], a[j+1]);
}
}
}
printf("\n");
for (int i = 0; i< 10; i++)
{
printf("%d ", a[i]);
}
return 0;
}
追问有错误啊
追答不好意思,纯手打的,没有编译。
头文件写错了,把#include <stido.h>这句改成#include <stdio.h>
#include <stdio.h>
int main()
{
int a[] = {12, 31, 14, 15, 29, 10, 23, 89, 112, 108};
for(int i = 0; i < 10; i++)
{
for (int j = 0; j < 10- i- 1; j++)
{
if (a[j] > a[j+1])
{
int tmp = a[j];
a[j] = a[j+1];
a[j+1] = tmp;
printf("%d %d\n", a[j], a[j+1]);
}
}
}
printf("\n");
for (int i = 0; i< 10; i++)
{
printf("%d ", a[i]);
}
return 0;
}
运行结果:
追问我已经调试了,没错误,但是最后输出不是我想要的,我的意思就是例如3,8,5,9,7,6,2,1,10,4对他们进行排序,输出结果是第一次排序结果3,8,5,9,7,6,2,1,10,4;第二次结果是3,5,8,7,6,2,1,9,4,10,;第三次。。。。。直到第十次1,2,3,4,5,6,7,8,9,10
追答自己改吧,冒泡排序已经写出来了,剩下都是加打印输出的语句了。
追问帮个忙吧,这个真心不会,谢谢了,帮我改出来吧
追答#include <stdio.h>
int main()
{
int a[] = {3,8,5,9,7,6,2,1,10,4};
for(int i = 0; i < 10; i++)
{
for (int k = 0; k< 10; k++)
{
printf("%d ", a[k]);
}
printf("\n");
for (int j = 0; j < 10- i- 1; j++)
{
if (a[j] > a[j+1])
{
int tmp = a[j];
a[j] = a[j+1];
a[j+1] = tmp;
}
}
}
printf("\n");
for (int i = 0; i< 10; i++)
{
printf("%d ", a[i]);
}
return 0;
}
结果:
本回答被网友采纳