各位牛人请进来帮小弟我解答下关于C语言的小疑问,下午就要三级模拟上机了,
各位牛人请进来帮我解答下关于C语言的小疑问,下午就要三级模拟上机了,急!!!!
今天上午先去模拟了一次上机,是计算机三级网络技术。
已知数据文件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;
g=a[m]%10;
ab=q*10+s;
cd=g*10+b;
if(isprime(ab)&&isprime(cd)&&ab!=0&&cd!=0)
{
b[cnt]=a[m];
cnt++;
}
}
for(x=0;x <cnt-1;x++)
for(y=x+1;y <cnt;y++)
if(b[x] <b[y])
{
data=b[x];
b[x]=b[y];
b[y]=data;
}
}
void readDat()
{
int i ;
FILE *fp ;
fp = fopen( "in.dat ", "r " ;
for(i = 0 ; i < MAX ; i++) fscanf(fp, "%d ", &a) ;
fclose(fp) ;
}
void main()
{
int i ;
readDat() ;
jsVal() ;
printf( "满足条件的数=%d\n ", cnt) ;
for(i = 0 ; i < cnt ; i++) printf( "%d ", b) ;
printf( "\n " ;
writeDat() ;
}
writeDat()
{
FILE *fp ;
今天上午先去模拟了一次上机,是计算机三级网络技术。
已知数据文件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;
g=a[m]%10;
ab=q*10+s;
cd=g*10+b;
if(isprime(ab)&&isprime(cd)&&ab!=0&&cd!=0)
{
b[cnt]=a[m];
cnt++;
}
}
for(x=0;x <cnt-1;x++)
for(y=x+1;y <cnt;y++)
if(b[x] <b[y])
{
data=b[x];
b[x]=b[y];
b[y]=data;
}
}
void readDat()
{
int i ;
FILE *fp ;
fp = fopen( "in.dat ", "r " ;
for(i = 0 ; i < MAX ; i++) fscanf(fp, "%d ", &a) ;
fclose(fp) ;
}
void main()
{
int i ;
readDat() ;
jsVal() ;
printf( "满足条件的数=%d\n ", cnt) ;
for(i = 0 ; i < cnt ; i++) printf( "%d ", b) ;
printf( "\n " ;
writeDat() ;
}
writeDat()
{
FILE *fp ;