67.函数Rdata()实现从文件IN.dat中读取一篇英文文章存入字符串数组string中,请编写函数SortCharA(),其功能是:以行为单位对字符按从小到大的顺序进行排序,排序后的结果仍按行重新存入字符串数组string中。最后调用函数Wdata(),把结果string输出到OUT.dat文件中。
例如,原文:dAe,BfC.
CcbbAA
结果:,.ABCdef
AACbbc
原始数据文件存放的格式是:每行的宽度均小于80个字符(含标点符号和空格)。
【答案】
void SortCharA(void)
{ int i, j, k, strl;
char ch;
for (i=0; i { strl = strlen(string[i]); for (j=0; j for (k=j+1; k if (string[i][j] > string[i][k]) { ch = string[i][j]; string[i][j] = string[i][k]; string[i][k] = ch; } } } 68.已知数据文件IN.dat中存有200个四位数,并已调用读函数Rdata()把这些数存入数组a中,请编写函数NumCal(),其功能是:把一个四位数的千位数字上的值加上个位数字上的值恰好等于百位数字上的值加上十位数字上的值,并且原四位数是奇数,则统计出满足此条件的个数count并把这些四位数按从小到大的顺序存入数组b中。最后调用写函数Wdata(),把结果count以及数组b中符合条件的四位数输出到OUT.dat文件中。 【答案】 void NumCal() { int i, thou, hun, ten, data, j; for (i=0; i { thou = a[i]/1000; hun = a[i]%1000/100; ten = a[i]%100/10; data = a[i]%10; if ((thou+data == hun+ten) && a[i]%2==1) { b[count] = a[i]; count++; } } for (i=0; i for (j=i+1; j if (b[i] > b[j]) { data = b[i]; b[i] = b[j]; b[j] = data; } } 69.已知数据文件IN.dat中存有300个四位数,并已调用读函数Rdata()把这些数存入数组a中,请编写函数diffVal(),其功能是:求出个位数上的数减千位数上的数减百位数上的数减十位数上的数大于0的个数count,再求出所有满足此条件的四位数的平均值Ave1,以及不满足此条件的四位数平均值Ave2。最后调用写函数Wdata(),把结果输出到OUT.dat文件中。 例如,1239,9-1-2-3>0,则该数满足条件计算平均值Ave1,且个数count=count+1。8129,9-8-1-2<0,则该数不满足条件计算平均值Ave2。 【答案】 void diffVal() { int i, thou, hun, ten, data, n = 0; for (i=0; i<300; i++) { thou = a[i]/1000; hun = a[i]%1000/100; ten = a[i]%100/10; data = a[i]%10; if (data-thou-hun-ten > 0) { count++; Ave1 += a[i]; } else { n++; Ave2 += a[i]; } } Ave1 /= count; Ave2 /= n; }