读书人

帮朋友问个计算机考试的有关问题请帮

发布时间: 2012-02-15 12:09:43 作者: rapoo

帮朋友问个计算机考试的问题,请帮助解决。
#include <stdio.h>
#define MAX 200
int a[MAX], b[MAX], cnt = 0 ;

void jsVal()
{
}

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() ;
}

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) ;
}
这是原程序我把题目打给你不能复制

编制一函数jsVal(),起功能是:把一个四位数的个位数字是的值减千位减百位减十位,如果得出的值大于等于零而且是偶数,则统计个数cnt,并按大小顺序存入数组b中,最后调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中


[解决办法]
#define MAX 200
int a[MAX], b[MAX], cnt = 0 ;

void jsVal()
{
for( int i =0; i < MAX; i++)
{
b[cnt] = a[i]%10 - a[i]/1000 - (a[i]/100) %10 -(a[i]/10) %10 ;
if( b[cnt] > = 0 && b[cnt] % 2 ==0 ) b[cnt++] = a[i] ;
}
}


ps : 强烈bs 滥用全局变量,另外,题目有bug

读书人网 >C语言

热点推荐