找考题网-背景图
问答题

文件IN.DAT中存放有字符数据,函数ReadData()负责从中读取20行数据存放到字符串数组inBuf[]中(每行字符串的长度均小于80)。请编制函数arrangeChar(),该函数的功能是:以行为单位,对字符串变量的下标为奇数位置上的字符,按其ASCⅡ码值从小到大的顺序进行排序,对字符串变量的下标为偶数位置上的字符,按其ASCⅡ码值从大到小的顺序进行排序,排序后的结果仍按行重新存入字符串数组inBuf[]中,并且奇数位还保存在奇数位上,偶数位还保存在偶数位上。函数WriteData()负责把结果inBuf输出到文件OUT.DAT中。
例如:位置01234567
源字符串ahcfedgb
则处理后字符串gbedcfah
注意:部分源程序已给出。
请勿改动主函数main()、读函数ReadData()和写函数WriteData()的内容。
试题程序:
#include<stdlib.h>
#include<stdio.h>
#include<string.h>
#include<ctype.h>
#define LINE 50
#define COL 80
char inBuf[LINE][COL];
int totleLine=0;/*文章的总行数*/
int ReadData(void);
void WriteData(void);
void arrangeChar()


void main()

system("CLS");
if(ReadData())

printf("IN.DAT can’t be open!’);
if(p)*P=0;
i++;

totleLine=i;
fclose(fp);
return 0;

void WriteData(void)

FILE*fp;
int i:
fp=fopen("OUT.DAT","W");
for(i=0;i<totleLine;i++)

printI("%s",inBuf[i]);
fprintf(fp,"%s",inBuI[i]);

fclose(fp);

【参考答案】

void arrangeChar()
{
int i,j,k,col[LINE];
unsigned char temp;
for(i=0;i<totleLine;i++)/*统计出每行字母(不含回车符)的列数,即字符串长度*/
for(j=0;j<......

(↓↓↓ 点击‘点击查看答案’看完整答案、解析 ↓↓↓)