| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1433 人关注过本帖
标题:[原创]来帮我看看到底错在那里?
只看楼主 加入收藏
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
 问题点数:0 回复次数:14 
[原创]来帮我看看到底错在那里?

[attach]517[/attach] 后天就是我母亲的生日,我想送她一个礼物。她最大的希望就是想学电脑,可是却一直没有机会。我就想到以前学电脑的时候老师经常叫我们练习的一个打字程序。所以我编写了一个程序送给她,可是在〈正确率统计〉上面我搞得一塌糊涂,我是没眼去看啦,灌上来请大家帮忙~

#include <conio.h> #include <stdio.h> char s[80*25];

void wellcome() /*开始界面*/ { clrscr(); textmode(C40); gotoxy(10,10); cprintf("Well Come\n"); gotoxy(4,15); cprintf("This Program for my mother!"); getch(); }

int readwords(char addname) /*读取题目所在的文件*/ { int i=0; FILE *fp; char ch,basename[15]={"text.txt"},filename[20]; filename[0]=addname; strcat(filename,basename); if((fp=fopen(filename,"r"))==NULL) return(-1); while((ch=fgetc(fp))!=EOF) { s[i]=ch; i++; } fclose(fp); return(i); }

void output(int max) /*把读取出来的字符显示到单数行去*/ { int x,y,i=0; textmode(C80); textcolor(14); textbackground(1); for(y=1;y<=23;y+=2) for(x=1;x<=80;x++) { i++; gotoxy(x,y); cprintf("%c",s[i]); if(i==max) return; } return; }

int input(int max) /*用户输入,并判断对错*/ { int error=0,x,y,i=0; char ch; textmode(C80); textbackground(1); for(y=2;y<=24;y+=2) for(x=1;x<=80;x++) { i++; gotoxy(x,y); ch=getch(); if(ch==35) return(-1); if(ch!=s[i]) { ch='*'; error++; } cprintf("%c",ch); if(i==max) return(error); } } main() { int i,l,sign=0; char addname='A'; wellcome(); while(sign!=-1) { i=100; textmode(C80); textbackground(1); clrscr(); if((l=readwords(addname++))==-1) { printf("File load error!"); getch(); exit(0); } else output(l); printf("Error=%d\n",(i=(input(l)-1))); if(i==-2) { i=100; sign=-1; } if(sign!=-1) { printf("The right rate is : %d\%",i=((l-i)*100/l)); getch(); } if(i<90) sign=-1; } getch(); clrscr(); textmode(C40); gotoxy(6,10); if(i<90) printf("You lost! Best wish with you!"); else printf(" Good bye!"); getch(); }

在压缩包里面的文件请放在同一个文件夹当中,并且使用全屏幕执行程序。另外,当你练习的过程中想中途退出~请按Shitf+3。因为思路太乱,在算法肯定有不妥之处,请您指正~~谢谢

[em43]

[此贴子已经被作者于2004-07-29 13:19:18编辑过]

搜索更多相关主题的帖子: include gotoxy cprintf 
2004-07-29 13:04
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 
有没有人帮看看呢~~~郁闷[em47]

淘宝杜琨
2004-07-29 15:24
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
收藏
得分:0 

kao,你的代码so long,帮忙也让我看完先啊!

2004-07-29 16:16
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 

哦~是哦,太长了。哎,我怕时间来不急嘛,着急呀,催得紧了些~~不好意思呀。

那我就挑关键的问题来问吧。

求正确率:

已知:int s=总数,int error=错误数 求:正确率!


淘宝杜琨
2004-07-29 16:54
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 

int readwords(char addname) /*读取题目所在的文件*/ { int i=0; FILE *fp; char ch,basename[15]={"text.txt"},filename[20]; filename[0]=addname; strcat(filename,basename); if((fp=fopen(filename,"r"))==NULL)

这几句改一下:

int readwords(char addname) /*读取题目所在的文件*/ { int i=0; FILE *fp; char ch,filename[20]="Xtext.txt"; filename[0]=addname; if((fp=fopen(filename,"r"))==NULL)


九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2004-07-29 21:54
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 

恩~是的,的确比我的老练很多很多,谢谢啦

但是有人能帮我编写4楼的程序出来吗?我都快被数据类型的转换折磨疯了


淘宝杜琨
2004-07-30 07:18
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
收藏
得分:0 
以下是引用神vLinux飘飘在2004-07-29 16:54:52的发言:

求正确率:

已知:int s=总数,int error=错误数 求:正确率!

s是什么总数?是输入的总数吗?你是想要没有输入完的总数还是以文章的字符为总数? 还有,空格算不算输入错误?你在getchar处搞两个关卡不就行了吗?

2004-07-30 10:54
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 

哦,求正确率的问题是我把程序中我不理解的关键问题提升出来了而已,其实没有必要管s是什么的总数,也不用管空格算不算输入(其实是算的)

我只想知道由我给出的已知条件,如何去求~~~正确率而已~帮帮我~~谢谢~~


淘宝杜琨
2004-07-30 11:44
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 
以下是引用神vLinux飘飘在2004-07-29 16:54:52的发言:

哦~是哦,太长了。哎,我怕时间来不急嘛,着急呀,催得紧了些~~不好意思呀。

那我就挑关键的问题来问吧。

求正确率:

已知:int s=总数,int error=错误数 求:正确率!

(float)(s-error)/s

九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2004-07-30 19:31
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
收藏
得分:0 

神啊!请宽恕我吧……我想不到的说(其实是根本没想),我还没明白你要什么算法……

2004-07-30 23:46
快速回复:[原创]来帮我看看到底错在那里?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022745 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved