返回列表 发帖

高手帮忙看哈这个C程序,一直错唉 急!!

高手帮忙看哈这个C程序,一直错唉 急!!

#include <stdio.h>
#define MAX  200
int a[MAX], b[MAX], cnt = 0 ;
void writeDat();
int isprime(int m)
{
  int i ;
  for(i = 2 ; i <= m/2 ; i++)
   if(m % i == 0) return 0 ;
  return 1 ;
}

void jsVal()
{
        int i, m,b,c,d,mc,db;
for( i = 0 ; i <= 200 ; i++)
{
        m=a[i]/1000;
        b=(a[i]-1000*m)/100;
        c=(a[i]-1000*m-100*b)/10;
        d=a[i]-1000*m-100*b-10*c;
        mc=10*m+c;
        db=10*d+b;
if(isprime(mc)==1 && isprime(db)==1&&mc!=0&&db!=0)
{
b[cnt]=mc;
cnt++;
b[cnt]=db;

cnt++;

}


}
}




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 main()
{
  int i ;
  readDat() ;
  jsVal() ;
  printf("满足条件的数=%d\n", cnt) ;
  for(i = 0 ; i < cnt ; i++) printf("%d ", b[i]) ;
  printf("\n") ;
  writeDat() ;
}

void writeDat()
{
  FILE *fp ;
  int i ;
  fp = fopen("K:\\K78\\35000614\\out.dat", "w") ;
  fprintf(fp, "%d\n", cnt) ;
  for(i = 0 ; i < cnt ; i++) fprintf(fp, "%d\n", b[i]) ;
  fclose(fp) ;
}

楼上大哥“文件里读取数据,在筛选,符合你规则的显示,并写会你的文件。”不错,但是m不会是是随机值,修改后任然不行哎

TOP

非常感谢

TOP

prog1.c
H:\NCRE31\35000614\prog1.c(26) : error C2109: subscript requires array or pointer type
H:\NCRE31\35000614\prog1.c(26) : error C2106: '=' : left operand must be l-value
H:\NCRE31\35000614\prog1.c(28) : error C2109: subscript requires array or pointer type
H:\NCRE31\35000614\prog1.c(28) : error C2106: '=' : left operand must be l-value
Error executing cl.exe.

prog1.obj - 4 error(s), 0 warning(s)

TOP

"fp = fopen("in.dat", "r") ;"我可以负责任的告诉你,这行没有错!

TOP

太让我失望了   ,我原以为科院高手比较多  原来不过如此    这个程序jsVal()
中变量局部变量b和全局数组冲突  只要把函数里变量b换成其他的如w即可    !!!
1

评分人数

TOP

返回列表