10.已知数据文件IN.dat中存有300个四位数,并已调用读函数Rdata()把这些数存入数组a中,请编写函数primeNum(),其功能是:求出所有这些四位数中素数的个数count,再把所有满足此条件的四位数依次存入数组b中,然后对数组b的四位数按从小到大的顺序进行排序。最后调用写函数Wdata(),把结果输出到OUT.dat文件中。
例如,5591是素数,则该数满足条件存入数组b中,且个数count=count+1。9812是非素数,则该数不满足条件,不存入数组b中,count值也不加1。
【答案】
void primeNum()
{ int j, i, value;
for (i=0; i<300; i++)
if (isP(a[i]))
{ b[count] = a[i];
count++;
}
for (i=0; i for (j=i+1; j if (b[i] > b[j]) { value = b[i]; b[i] = b[j]; b[j] = value; } } 11.下列程序的功能是:把s字符串中的所有字符左移一个位置,字符串中的第一个字符移到最后。请编写函数change(char*s)实现程序要求,最后调用函数readwriteDAT()从IN.dat文件中读取50组数据,分别得出结果,且把结果输出到OUT.dat文件中。 例如,s字符串中原有内容为:Mn.123xyZ,调用该函数后结果为:n.123xyZM。 【答案】 void change(char*s) { int i, strl; char ch; strl = strlen(s); ch = *s; for (i=0; i *(s+i) = *(s+i+1); *(s+strl-1) = ch; } 12.下列程序的功能是:找出所有100以内(含100)满足i、i+4、i+10都是素数的整数i(i+10也在100以内)的个数count以及这些i之和sum。请编写函数primeNum()实现程序要求的功能,最后调用函数writeDat(),把结果count和sum输出到文件OUT.dat中。 【答案】 void primeNum() { int i; for(i=2;i<=90;i++) if(isPrime(i) && isPrime(i+4) && isPrime(i+10)) { count++; sum+=i; } }