C语言中无效间接运算,我急!!!下午要上机了,请高手快些啊 !!

来源:百度知道 编辑:UC知道 时间:2024/06/27 21:40:52
今天上午先去模拟了一次上机,是计算机三级网络技术。

已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:
在a【】中选出符合条件的数字---那个数字的个,十,百,千四个数字两两组成2个新二位数字,其中一个数的十位是原来四位数的千位,个位是其十位;
另一个新数的十位是原来四位数的个位,个位是其百位。
如果这个四位数组成的两个新数均为素数且都不为零。则把这个四位数从大到小存入数组b[]中。
最后调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。
注意:部分源程序存在文件prog1.c中。
程序中已定义数组:a[200],b[200],已定义变量:cnt
请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。

#include <stdio.h>;
#define MAX 200
int a[MAX], b[MAX], cnt=0;
int isprime(int p)

{
int i=0;
for(i=0;i<p/2;i++)

{
if(p%i==0)
return 0;
else
return 1;
}
}

void jsVal()
{
int g=0,s=0,b=0,q=0;
int m=0,n=0,x=0,y=0,data=0;
int ab=0,cd=0;
for(m=0;m<200;m++)
{
q=a[m]/1000;
b=a[m]%1000/100;
s=a[m]%100/10;

Invaild indrection (无效的间接运算)

楼上说的是个问题...很严重的问题
你重新定义一个原来为b的数组名或原来位b的变量名就可以了,编译通过。
不过好像还有1个警告是void jsVal()
函数里定义的n没用到哦,不用就删了吧。
另外,怎么少了那么多括号.....

你的变量定义有问题,不能数组变量名和一个整形变量同名:
你的程序里既定义了b[max],有定义了b,这是不允许的,编译器无法识别