C语言中出现error c2109错误
#include<stdio.h>inta[300],b[300],cnt=0;voidreadDat();voidwriteDat();voidjsValue(){in...
#include <stdio.h>
int a[300], b[300], cnt=0;
void readDat();
void writeDat();
void jsValue()
{ int i,j;
int q,b,s,g;
int k;
for(i=0;i<300;i++)
{q=a[i]/1000;
b=a[i]%1000/100;
s=a[i]%100/10;
g=a[i]%10;
if(q+g==b+s)
{b[cnt]=a[i];cnt++;}}
for(i=0;i<cnt-1;i++)
for(j=i+1;j<cnt;j++)
if(b[i]>b[j])
{k=b[i];b[i]=b[j];b[j]=k;}
}
void main()
{
int i;
readDat();
jsValue();
writeDat();
printf("cnt=%d\n", cnt);
for(i=0; i<cnt; i++)
printf("b[%d]=%d\n", i, b[i]);
}
void readDat()
{
FILE *fp;
int i;
fp = fopen("IN.DAT", "r");
for(i=0; i<300; i++)
fscanf(fp, "%d,", &a[i]);
fclose(fp);
}
void writeDat()
{
FILE *fp;
int i;
fp = fopen("OUT.DAT", "w");
fprintf (fp, "%d\n",cnt);
for(i=0; i<cnt; i++)
fprintf(fp, "%d,\n", b[i]);
fclose(fp);
}
调试时出现如下错误:
1>------ 已启动生成: 项目: PROG, 配置: Debug Win32 ------
1>正在编译...
1>PROG.C
1>f:\wexam\00000000\prog.c(16) : error C2109: 下标要求数组或指针类型
1>f:\wexam\00000000\prog.c(19) : error C2109: 下标要求数组或指针类型
1>f:\wexam\00000000\prog.c(19) : error C2109: 下标要求数组或指针类型
1>f:\wexam\00000000\prog.c(20) : error C2109: 下标要求数组或指针类型
1>f:\wexam\00000000\prog.c(20) : error C2109: 下标要求数组或指针类型
1>f:\wexam\00000000\prog.c(20) : error C2109: 下标要求数组或指针类型
1>f:\wexam\00000000\prog.c(20) : error C2109: 下标要求数组或指针类型
1>生成日志保存在“file://f:\WEXAM\00000000\Debug\BuildLog.htm”
1>PROG - 7 个错误,0 个警告
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
想破头都没发现错在哪里,有大虾知道吗? 展开
int a[300], b[300], cnt=0;
void readDat();
void writeDat();
void jsValue()
{ int i,j;
int q,b,s,g;
int k;
for(i=0;i<300;i++)
{q=a[i]/1000;
b=a[i]%1000/100;
s=a[i]%100/10;
g=a[i]%10;
if(q+g==b+s)
{b[cnt]=a[i];cnt++;}}
for(i=0;i<cnt-1;i++)
for(j=i+1;j<cnt;j++)
if(b[i]>b[j])
{k=b[i];b[i]=b[j];b[j]=k;}
}
void main()
{
int i;
readDat();
jsValue();
writeDat();
printf("cnt=%d\n", cnt);
for(i=0; i<cnt; i++)
printf("b[%d]=%d\n", i, b[i]);
}
void readDat()
{
FILE *fp;
int i;
fp = fopen("IN.DAT", "r");
for(i=0; i<300; i++)
fscanf(fp, "%d,", &a[i]);
fclose(fp);
}
void writeDat()
{
FILE *fp;
int i;
fp = fopen("OUT.DAT", "w");
fprintf (fp, "%d\n",cnt);
for(i=0; i<cnt; i++)
fprintf(fp, "%d,\n", b[i]);
fclose(fp);
}
调试时出现如下错误:
1>------ 已启动生成: 项目: PROG, 配置: Debug Win32 ------
1>正在编译...
1>PROG.C
1>f:\wexam\00000000\prog.c(16) : error C2109: 下标要求数组或指针类型
1>f:\wexam\00000000\prog.c(19) : error C2109: 下标要求数组或指针类型
1>f:\wexam\00000000\prog.c(19) : error C2109: 下标要求数组或指针类型
1>f:\wexam\00000000\prog.c(20) : error C2109: 下标要求数组或指针类型
1>f:\wexam\00000000\prog.c(20) : error C2109: 下标要求数组或指针类型
1>f:\wexam\00000000\prog.c(20) : error C2109: 下标要求数组或指针类型
1>f:\wexam\00000000\prog.c(20) : error C2109: 下标要求数组或指针类型
1>生成日志保存在“file://f:\WEXAM\00000000\Debug\BuildLog.htm”
1>PROG - 7 个错误,0 个警告
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
想破头都没发现错在哪里,有大虾知道吗? 展开
4个回答
展开全部
代码中有一个全局变量b[],函数中有一个局部变量b,重名了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
main中的b覆盖了全局的声明
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int q,b,s,g;
int k;
int怎么可以有下标
int k;
int怎么可以有下标
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询