有问题先搜索一下: 高级搜索

已解决问题 - 浏览170次

下一个已解决问题
bernielxjbernielxj

举人

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

还可输入300个字

请输入上图中的验证码,字母不区分大小写。

点击查看更多 高手 编译 帮忙 相关信息

最佳答案 - 由投票者2008-10-23 16:22:03选出

我已经好长时间没弄c了,单位的机器里面也没安装c的编译环境,我尝试着帮你分析分析吧!!

首先报这样的编译错误,是提示你,把一个整形变量当成整形数组使用了!!
出错的那一行只有一个 名字叫做b的数组。
纵观你的整个代码,一共定义两个叫做b的变量!!
一个是main方法以外的 全局变量 数组b
另一个是main方法里面声明的局部变量 整数b

因为逻辑发生在main方法里面,所以出错那一行的b,被系统认为是整数b,而不是数组

所以你只要把这2个变量的任意一个改名就可以了

希望对你有所帮助,有问题欢迎提问,必尽心回答!!!

0 0

还可输入300个字

请输入上图中的验证码,字母不区分大小写。

其他回答(2)

  • 过客

    过客

    123.151.170.*

    主程序内的整型变量b将全局变量数组b屏蔽掉了,主程序内的b是一个整型变量,不能像数组那样带下标,所以应该将主程序内的变量名和全局变量区分开。

    还可输入300个字

    请输入上图中的验证码,字母不区分大小写。

  • gx_xqxzgx_xqxz

    穷酸秀才

    全局变量数组b[]被局部变量b屏蔽了

    还可输入300个字

    请输入上图中的验证码,字母不区分大小写。

返回知识堂首页>>

猜你喜欢看

更多

1
关于雅虎 | 帮助中心 | 联系我们 | 诚聘英才 | 广告服务 | 壹推广服务 | 搜索竞价 | 雅虎百业窗 | 网站联盟 [更多]
Copyright © 2008 Yahoo.com.cn 版权所有 不得转载 | 使用须知 | 著作权声明 | 京ICP证000022号 | 国家药监局(京)-经营性-2004-0039
全球阿里巴巴 - 阿里巴巴网络:中国站 国际站 日文站 | 淘宝站 | 支付宝 | 中国雅虎 | 口碑网 | 阿里软件 | 阿里妈妈