#include <stdio.h>
void main()
{
//extern void print_int_array(int a[], int n);
void print_int_array(int a[], int n);
int i, j, t;
int flag = 1;
//int i, j, t, flag; //??????为什么注释这样写就会报错,而上面那样写写就不会报错
//flag = 1;
int a[5] = {5, 2, 1, 4, 6};
while(flag)
{
flag = 0;
for(i = 0; i < 5; i++)
{
for(j = 0; j < 5-i-1; j++)
{
if(a[j] > a[j+1])
{
t = a[j];
a[j] = a[j+1];
a[j+1] = t;
flag = 1;
}
}
}
}
print_int_array(a, 5);
}
void print_int_array(int a[], int n)
{
int i;
for(i = 0; i < n; i++)
{
printf("%d\t", a[i]);
}
printf("\n");
}
可能你的赋值语句flag = 1;写在了int a[5] = {5, 2, 1, 4, 6}; 变量定义前面, 你把flag = 1;这句话放到int a[5] = {5, 2, 1, 4, 6};后面估计就行了,
你也没粘贴报错的信息啊,根据错误信息,一下就能定位错误啊。
哪少了一个分号吧,按道理注释那样写也不会报错的
函数中,需要先书写变量定义,然后是操作。
你定义了flag,然后赋值,之后又有定义,所以报错。
当然可以定义的时候赋值,那样就不会报错。