分享
 
 
 

200分又是C语言问题

王朝知道·作者佚名  2009-07-06
窄屏简体版  字體: |||超大  
 
分類: 電腦/網絡 >> 程序設計 >> 其他編程語言
 
問題描述:

函数ReadDat()实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中,请编制函数StrOL(),其函数的功能是:以行为单位对行中以空格或标点符号为分隔的所有单词进行倒排。最后把已处理的字符串(应不含标点符号)仍按行重新存入字符串数组xx中,最后调用函数writeDat()把结果xx输出到文件OUT6.DAT中。

例如:原文:You He Me

I am a student.

结果:Me He You

student a am I

原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。

部分源程序存在文件prog1.c中。

请勿改动主函数main()、读数据函数ReadDat()和输出数据函数writeDat()的内容。

#include <stdio.h>

#include <string.h>

#include <conio.h>

#include <ctype.h>

char xx[50][80];

int maxline=0;/*文章的总行数*/

int ReadDat(void);

void WriteDat(void);

void StrOL(void){这段为答案(1)

}

void main()

{

clrscr();

if(ReadDat()){

printf("数据文件IN.DAT不能打开!\n\007");

return;

}

StrOL();

WriteDat();

}

int ReadDat(void)

{

FILE *fp;

int i=0;

char *p;

if((fp=fopen("IN.DAT","r"))==NULL) return 1;

while(fgets(xx[i],80,fp)!=NULL){

p=strchr(xx[i],'\n');

if(p)*p=0;

i++;

}

maxline=i;

fclose(fp);

return 0;

}

void WriteDat(void)

{

FILE *fp;

int i;

clrscr();

fp=fopen("OUT6.DAT","w");

for(i=0;i<maxline;i++){

printf("%s\n",xx[i]);

fprintf(fp,"%s\n",xx[i]);

}

fclose(fp);

}

答案(1)为{int I,j,k,strl,l;char c;

for(I=0;I<maxline;I++)

for(j=0;j<strlen(xx[I]);j++)

{c=xx[I][j];

if ((c>='A'&&c<='Z')||(c>='a'&&c<='z')||c==' ') ;

else xx[I][j]=' '; }

for(l=0;l<maxline;l++)

{char ch[80]={0}; char pp[80]={0};

strl=strlen(xx[l]);

I=strl-1; k=1;

while(1)

{while (((xx[l][I]>='a'&&xx[l][I]<='z')||(xx[l][I]>='A'&&xx[l][I]<='z'))&&I>=0)

{for(j=k;j>=0;j--)

pp[j+1]=pp[j]; pp[0]=xx[l][I]; k++;I--; }

strcat(ch,pp);strcpy(pp, """");k=1;

if(I==-1)break;

while((xx[l][I]<'A'||xx[l][I]>'z')&&I>=0)

{for(j=k;j>=0;j--)

pp[j+1]=pp[j]; pp[0]=xx[l][I]; k++; I--;}

strcat(ch,pp); strcpy(pp,"""");

k=0;

if(I==-1)break;}

strcpy(xx[l],ch);

}

}

我的提问是答案中的语句

第一个问题:第二个和第三个while 为什么换不成if!

第二问题为什么少了k++:

输出会变成an ren hae Yoa

ma a in arn

st wht

de Ece

ge ine win

wh wah ina

tur inu

po cao wia

en lin thi toh

a an prn Ecr

ca ena cln

co noo

a ma toa hao Yoa

tw thw beh che

le noe wro shr Yoh

Wr 25r th5

on arn yor

2 SH ANH

原来输出答案an read have You

magazine a in article

states which

development Economic

generate inevitably will

which waste industrial

turn in

pollution cause will

environment living the to

a and prosperity Economic

can environment clean

coexist not

a make to have You

two the between choice

less no write should You

Write 250words than

on article your

2 SHEET ANSWER

请各位高手指教!

參考答案:

1.很简单,程序是一个一个字符的读取,需要每次都判断读取的是否是字母或是行首,用if一次判断就没了,不符合程序的算法,第一个while读取整个单词,第二个while跳过空格,循环操作

2.看这段程序

for(j=k;j>=0;j--)

pp[j+1]=pp[j];

pp[0]=xx[l][I]; k++;I--;

程序的算法是从行尾不断读取字符到pp中,但是为了维持单个单词的正向拼写,采用了头插法,即不断向pp开头插入字符的方法获取单词,比如单词four,先是"r",k的值为字符长度+1,k=2,通过循环将现有的字符后移留出空位待插入,循环后变为"rr",插入变为"ur",然后依次变化"uur"->"our"->"oour"->"four",k的作用就是维护当前已获取字符长度的变量,应该是在不断变化的,你把它删了,自然就会出现不可预知的结果了啊

\

小贴士:① 若网友所发内容与教科书相悖,请以教科书为准;② 若网友所发内容与科学常识、官方权威机构相悖,请以后者为准;③ 若网友所发内容不正确或者违背公序良俗,右下举报/纠错。
 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有