第一段代码和第二段代码中的区别在于
[Asm] 纯文本查看 复制代码printf("====================================================\n");
int a[n];
和
[Asm] 纯文本查看 复制代码int a[n];
printf("====================================================\n");
第一段代码输出结果:
第一段代码输出结果.png (23.5 KB, 下载次数: 0)
第一段代码输出结果
2015-1-23 14:57 上传
第二段代码输出结果:
第二段代码.png (23.15 KB, 下载次数: 0)
第二段代码输出结果
2015-1-23 15:02 上传
《第一个问题》:这点区别导致排序输出错误!!!为什么?
第一段(1)
[Asm] 纯文本查看 复制代码(1)
#include
main()
{
int n,i,k,m;
printf("请输入有几个数据:\n");
scanf("%d",&n);
printf("====================================================\n");
int a[n];
for(i=0;i
{
/*printf("请输入第 %d 个数据:",i+1);*/
scanf("%d",&a[i]);
}
for(i=0;i<=n-1;i++)
{
for(k=0;k<=n-1;k++)
{
if(a[k]>a[k+1])
{
m=a[k];
a[k]=a[k+1];
a[k+1]=m;
}
}
}
printf("====================================================\n");
for(i=0;i
{
printf("%d\n",a[i]);
}
}[/align][align=left]第(2)种代码[/align][align=left]
[Asm] 纯文本查看 复制代码(2)[/align][align=left]#include[/align][align=left]main()
{
int n,i,k,m;
printf("请输入有几个数据:\n");
scanf("%d",&n);
int a[n];
printf("====================================================\n");
for(i=0;i
{
printf("请输入第 %d 个数据:",i+1);
scanf("%d",&a[i]);
}
for(i=0;i<=n-1;i++)
{
for(k=0;k<=n-1;k++)
{
if(a[k]>a[k+1])
{
m=a[k];
a[k]=a[k+1];
a[k+1]=m;
}
}
}
printf("====================================================\n");
for(i=0;i
{
printf("%d\n",a[i]);
}
}
下面这段代码在Cfree编译器种运行未发生任何错误提示!正确输出
但在vc++6.0下运行编译却出现错误
代码(3)
[Asm] 纯文本查看 复制代码#include
main()
{
intn,i,k,m;
int p;
scanf("%d",&n);
inta[n];
for(i=0;i
{
scanf("%d",&a[i]);
}
for(i=0;i<=n-1;i++)
{
for(k=0;k<=n-1;k++)
{
if(a[k]>a[k+1])
{
m=a[k];
a[k]=a[k+1];
a[k+1]=m;
}
}
}
for(i=0;i
{
printf("%d\n",a[i]);
}
}
Vc++6.0提示错误:
[Asm] 纯文本查看 复制代码--------------------Configuration: xza - Win32Debug--------------------
Compiling...
xxx.c
C:\ProgramFiles\Microsoft Visual Studio\MyProjects\xza\xxx.c(7) : error C2143: syntaxerror : missing ';' before 'type'
C:\ProgramFiles\Microsoft Visual Studio\MyProjects\xza\xxx.c(10) : error C2065: 'a' :undeclared identifier
C:\ProgramFiles\Microsoft Visual Studio\MyProjects\xza\xxx.c(10) : error C2109: subscriptrequires array or pointer type
C:\ProgramFiles\Microsoft Visual Studio\MyProjects\xza\xxx.c(10) : error C2102: '&'requires l-value
C:\ProgramFiles\Microsoft Visual Studio\MyProjects\xza\xxx.c(16) : error C2109: subscriptrequires array or pointer type
C:\ProgramFiles\Microsoft Visual Studio\MyProjects\xza\xxx.c(16) : error C2109: subscriptrequires array or pointer type
C:\ProgramFiles\Microsoft Visual Studio\MyProjects\xza\xxx.c(18) : error C2109: subscriptrequires array or pointer type
C:\ProgramFiles\Microsoft Visual Studio\MyProjects\xza\xxx.c(19) : error C2109: subscriptrequires array or pointer type
C:\ProgramFiles\Microsoft Visual Studio\MyProjects\xza\xxx.c(19) : error C2109: subscriptrequires array or pointer type
C:\ProgramFiles\Microsoft Visual Studio\MyProjects\xza\xxx.c(19) : error C2106: '=' :left operand must be l-value
C:\ProgramFiles\Microsoft Visual Studio\MyProjects\xza\xxx.c(20) : error C2109: subscriptrequires array or pointer type
C:\ProgramFiles\Microsoft Visual Studio\MyProjects\xza\xxx.c(20) : error C2106: '=' :left operand must be l-value
C:\ProgramFiles\Microsoft Visual Studio\MyProjects\xza\xxx.c(26) : error C2109: subscriptrequires array or pointer type
C:\ProgramFiles\Microsoft Visual Studio\MyProjects\xza\xxx.c(26) : error C2102: '&'requires l-value
执行 cl.exe 时出错.
xxx.obj- 1 error(s), 0 warning(s)
《第二个问题》:为什么vc++6.0上编译错了?或者这程序不该这样编写?
附doc:链接:http://pan.baidu.com/s/1pJn01gZ 密码:oo5d