关于数组的表达式用符号常量的问题
问题:输入8个数,从小到大排序
书上的代码是这样的:
#include<Stdio.h>
#define N 8;
int main(void)
{
int a[N],i,j,t; 出错
for (i=1;i<=N;i++)
scanf ("%d",&a[i]);
t=a[0];
for (i=1;i<=N;i++)
for (j=8-i;j>0;j--)
if (a[j+1]<a[j])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
for (i=1;i<=N;i++)
printf ("%-3d",a[i]);
getch();
return 0;
}
#define N 8;
int main(void)
{
int a[N],i,j,t; 出错
for (i=1;i<=N;i++)
scanf ("%d",&a[i]);
t=a[0];
for (i=1;i<=N;i++)
for (j=8-i;j>0;j--)
if (a[j+1]<a[j])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
for (i=1;i<=N;i++)
printf ("%-3d",a[i]);
getch();
return 0;
}
可是这样不行,编译时错误:
syntax error before ')' token
用DEV-C++和WIN-TC都是这样.
改成:
#include<Stdio.h>
int main(void)
{
int a[8],i,j,t;
for (i=1;i<=8;i++)
scanf ("%d",&a[i]);
t=a[0];
for (i=1;i<=8;i++)
for (j=8-i;j>0;j--)
if (a[j+1]<a[j])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
for (i=1;i<9;i++)
printf ("%-3d",a[i]);
getch();
return 0;
}
int main(void)
{
int a[8],i,j,t;
for (i=1;i<=8;i++)
scanf ("%d",&a[i]);
t=a[0];
for (i=1;i<=8;i++)
for (j=8-i;j>0;j--)
if (a[j+1]<a[j])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
for (i=1;i<9;i++)
printf ("%-3d",a[i]);
getch();
return 0;
}
这样就没问题了
请问为什么
[此贴子已经被作者于2007-8-21 20:27:18编辑过]