left operand must be l-value错误怎么解决??

来源:百度知道 编辑:UC知道 时间:2024/05/26 14:59:39
完整的程序如下:
#include <stdio.h>
#define MAX 200
int a[MAX], b[MAX], cnt = 0;
void jsVal()
{
int i,q,b,s,g,j,data;
for(i=0;i<MAX;i++)
{
q=a[i]/1000;
b=a[i]%1000/100;
s=a[i]%100/10;
g=a[i]%10;
if(g-q-b-s>=0&&a[i]%2==0)
{
b[cnt]=a[i];
cnt++;
}
}
for(i=0;i<cnt-1;i++)
for(j=i+1;j<cnt;j++)
if(b[i]>b[j])
{
data=b[i];
b[i]=b[j];
b[j]=data;
}
}
void readDat()
{
int i;
FILE *fp;
fp = fopen("IN.DAT", "r");
for (i=0; i<MAX; 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);
}
void mai

你的全局变量中有一个int的数组名字叫b,而在jsVal函数中你又申明了一个int类型的变量b,后者在jsVal函数中会隐藏掉前者,所以你不可以在jsVal函数中些b[cnt]这类,因为b不会被认为是数组类型,而会被认为是int类型