已解决问题 - 浏览170次
下一个已解决问题C编程,不能通过编译,高手帮忙看看
#include"stdio.h"
#define max 1000
int b[max],cnt=0;
main()
{
int i,j,temp;
int a ,b ,c ,d;
for(i=1000;i<9999;i++)
{
a=i%1000;
b=i%1000/100;
c=i%100/10;
d=i%10;
if(a+d==b+c)
{
b[cnt]=i; =>这里编译出问题了(请看最下面提示)
cnt++;
}
}
for(i=0;i<cnt-1;i++)
for(j=i+1;j<cnt;j++)
if(b[i]>b[j])
{
temp=b[i];
b[i]=b[j];
b[j]=temp;
}
printf("%5d",b[j]);
}
提示:invalid types `int[int]' for array subscript
最佳答案 - 由投票者2008-10-23 16:22:03选出
我已经好长时间没弄c了,单位的机器里面也没安装c的编译环境,我尝试着帮你分析分析吧!!
首先报这样的编译错误,是提示你,把一个整形变量当成整形数组使用了!!
出错的那一行只有一个 名字叫做b的数组。
纵观你的整个代码,一共定义两个叫做b的变量!!
一个是main方法以外的 全局变量 数组b
另一个是main方法里面声明的局部变量 整数b
因为逻辑发生在main方法里面,所以出错那一行的b,被系统认为是整数b,而不是数组
所以你只要把这2个变量的任意一个改名就可以了
希望对你有所帮助,有问题欢迎提问,必尽心回答!!!
其他回答(2)
-
过客
123.151.170.*
主程序内的整型变量b将全局变量数组b屏蔽掉了,主程序内的b是一个整型变量,不能像数组那样带下标,所以应该将主程序内的变量名和全局变量区分开。
-
全局变量数组b[]被局部变量b屏蔽了

bernielxj

gx_xqxz









