首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

哪位高手能帮小弟我解释一个程序! 画一个流程图!

2012-03-15 
谁能帮我解释一个程序!`画一个流程图!~我是一个新手看不懂这个程序希望会的人能帮帮我具体解释一下这个程

谁能帮我解释一个程序!` 画一个流程图!~
我是一个新手     看不懂这个程序     希望会的人能帮帮我   具体解释一下这个程序越详细越好!~       还有能不能画个流程图!~     帮帮忙吧!~

原代码在下面:
  #include   <stdio.h>
#include   <stdlib.h>
#include   <time.h>

main()
{
for   (;;){
    switch   (menu()){
        case   '1 ':test();break;
        case   '2 ':practise();break;
        case   '3 ':exit(0);
        }
    }
}

menu()
{
char   c;
do{
    clrscr();
    printf( "\n         1.测试\n ");
    printf( "         2.练习\n ");
    printf( "         3.退出\n ");
    printf( "\n请选择(1或2或3): ");
    c=getche();
    }while(c < '1 '||c> '3 ');
return   c;
}

test()
{
int   ts,i,m,n,s,r=0;
ts=numsoftest();
randomize();
for   (i=1;i <=ts;i++){
    do   {
        m=num();n=num();
        }while   ((m+n)> 9);
    printf( "%d)   %d+%d= ",i,m,n);
    scanf( "%d ",&s);
    if   (s==m+n)   r++;
    }
printf( "成绩:%d\n ",100*r/ts);
printf( "按任意键继续... ");
getch();
}

numsoftest()
{
int   n;
clrscr();
do{
    printf( "\n请输入题数(10~20): ");
    scanf( "%d ",&n);
    }while   (n <10||n> 20);
return   n;
}

practise()
{
int   ts,i,m,n,s;
ts=numsoftest();
randomize();
for   (i=1;i <=ts;i++){
    do   {
        m=num();n=num();
        }while   ((m+n)> 9);
    printf( "%d)   %d+%d= ",i,m,n);
    scanf( "%d ",&s);
    if   (s==m+n)   right();
    else   wrong();
    }
printf( "按任意键继续... ");
getch();
}

num()
{
return   random(9);
}

right()
{
printf( "正确\n ");
}

wrong()
{
printf( "错误\n ");
}

[解决办法]
原代码在下面:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

main()
{
for (;;){ // 无穷for循环
switch (menu()){ // 先执行menu()函数,从menu函数返回值来确定是下面的哪一种情况,然后执行相应的函数.
case '1 ':test();break; // menu函数的返回值是 '1 '时,执行test()函数
case '2 ':practise();break; // 同上
case '3 ':exit(0); // 是3时,程序退出
}
}
}

menu()
{
char c;
do{
clrscr(); // 把屏幕上输出的东西清空
printf( "\n 1.测试\n ");
printf( " 2.练习\n ");
printf( " 3.退出\n ");
printf( "\n请选择(1或2或3): ");
c=getche(); // 输入一个字符
}while(c < '1 '||c> '3 '); // 字符如果不在 '1 '与 '3 '的范围内,说明不是所要的,继续输入.
return c;
}

test()
{
int ts,i,m,n,s,r=0;
ts=numsoftest();


randomize();
for (i=1;i <=ts;i++){
do {
m=num();n=num();
}while ((m+n)> 9);
printf( "%d) %d+%d= ",i,m,n);
scanf( "%d ",&s);
if (s==m+n) r++;
}
printf( "成绩:%d\n ",100*r/ts);
printf( "按任意键继续... ");
getch();
}

numsoftest()
{
int n;
clrscr(); // 清屏
do{
printf( "\n请输入题数(10~20): ");
scanf( "%d ",&n);
}while (n <10||n> 20);
return n;
}

practise()
{
int ts,i,m,n,s;
ts=numsoftest();
randomize();
for (i=1;i <=ts;i++){
do {
m=num();n=num();
}while ((m+n)> 9);
printf( "%d) %d+%d= ",i,m,n);
scanf( "%d ",&s);
if (s==m+n) right();
else wrong();
}
printf( "按任意键继续... ");
getch();
}

num()
{
return random(9);
}

right()
{
printf( "正确\n ");
}

wrong()
{
printf( "错误\n ");
}
[解决办法]
忘了贴图片地址了

http://www.wanfangdata.com.cn/qikan/periodical.Articles/scdxxb/scdx99/scdx9904/image4/P16-1.gif

网页地址:
http://www.wanfangdata.com.cn/qikan/periodical.Articles/scdxxb/scdx99/scdx9904/990416.htm

热点排行
Bad Request.