#include<stdio.h>
int main()
{
int a[6] = {1,3,5,7,9};
int i, j, k,m;
for (i = 0; i < 5; i++)
printf("%d",a[i]);
printf("请输入一个数=\n");
scanf_s("%d\n",&m);
a[5] = m;
for (i = 0; i < 6; i++)
for (j = 0; j < 6 - i;j++)
if (a[i]>a[j])
{
k = a[j];
a[j] = a[i];
a[i] = k;
}
printf("此时的数组为:\n");
for (i = 0; i < 6; i++)
printf("%d",a[i]);
return 0;
}
大神们。。错哪了?
首先修改一下风格吧……
这样写scanf_s在G++是无法通过编译的,也许你的编译器不太一样吧,通过编译了。实际上对于你现在来说用scanf就足够了。
另外输入里的\n不建议写上,无论是跑工程还是跑题都容易出问题。
然后就是代码问题。
你输入20这个数据,逐步输出试试。解释是不容易解释的,但是这样的做法是错误的,体会一下。
一般来说排序用sort就行了。
头文件增加#include<algorithm>
添加using namespace std;(这个语句以后正式的程序其实并不推荐使用,不过现在用起来无伤大雅)
然后sort(a,a+6)可以替代升序排列。
正式程序如下:
#include<cstdio>实测可以通过,有问题再问。