刚学了函数..就要把开始的改编成函数形式的..到底什么是函数阿..?

原创 2013年11月20日 21:29:26
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<string.h>
main()
{ int s/*任务选择*/,i=0/*计数器*/,f=0/*计分器*/,c1/*数1*/,c2/*数2*/,o/*符号*/,j/*随机*/;
double c/*答案*/,p/*输入*/;
char F/*四则运算*/,x[100]/*字符串*/,z;
srand(time(NULL));
printf("欢迎使用计算机辅助教学系统!\n\n请选择要进行的任务(1~6):");
while(!(scanf("%d",&s) && s>=1 && s<=6))
printf("输入有误!请重新输入:");
switch(s)
{case 1:
do{c1=rand()%10+1,c2=rand()%10+1,c=c1*c2;
printf("%d*%d=",c1,c2);
while(!(scanf("%lf",&p) && p==c))
printf("\n\"Wrong!Please try again.\"\n\n%d*%d=",c1,c2);
printf("\n\"Right!\"\n\n");}while(1);
break;
case 2:
c1=rand()%10+1,c2=rand()%10+1,c=c1*c2;
printf("%d*%d=",c1,c2);
while(!(scanf("%lf",&p) && p==c))
{i++;
if(i==3)
{printf("\n\"Wrong!You have tried three times!Test over!\"\n\n");
break;}
printf("\n\"Wrong!Please try again.\"\n\n%d*%d=",c1,c2);}
if (p==c)
printf("\n\"Right!\"\n\n");
break;
case 3:
do{i++,c1=rand()%10+1,c2=rand()%10+1,c=c1*c2;
printf("%d*%d=",c1,c2);
scanf("%lf",&p);
if(p==c)
{printf("\n\"Right!\"\n\n");
f+=10;}
else printf("\n\"Wrong!\"\n\n");}
while(i!=10);
printf("你的总分为:%d分\n回答正确率为:%d%%\n",f,f);
break;
case 4:
do{i++,c1=rand()%10+1,c2=rand()%10+1,o=rand()%4;
if(o==0)
F='+',c=c1+c2;
else if(o==1)
F='-',c=c1-c2;
else if(o==2)
F='*',c=c1*c2;
else F='/',c=(double)c1/c2;
printf("%d%c%d=",c1,F,c2);
scanf("%lf",&p);
if(p==c)
{printf("\n\"Right!\"\n\n");
f+=10;}
else printf("\n\"Wrong!\"\n\n");}
while(i!=10);
printf("你的总分为:%d分\n回答正确率为:%d%%\n",f,f);
break;
case 5:
do{i=0,f=0;
do{i++,c1=rand()%10+1,c2=rand()%10+1,o=rand()%4;
if(o==0)
F='+',c=c1+c2;
else if(o==1)
F='-',c=c1-c2;
else if(o==2)
F='*',c=c1*c2;
else F='/',c=(double)c1/c2;
printf("%d%c%d=",c1,F,c2);
scanf("%lf",&p);
if(p==c)
{printf("\n\"Right!\"\n\n");
f+=10;}
else printf("\n\"Wrong!\"\n\n");}
while(i!=10);
printf("你的总分为:%d分\n回答正确率为:%d%%\n\n",f,f);
if (f<75)
printf("你的正确率低于75%%!请重新作答!\n\n");}
while(f<75);
break;
case 6:
do{i=0,f=0;
do{i++,c1=rand()%10+1,c2=rand()%10+1,o=rand()%4,j=rand()%4+7;
if(o==0)
F='+',c=c1+c2;
else if(o==1)
F='-',c=c1-c2;
else if(o==2)
F='*',c=c1*c2;
else F='/',c=(double)c1/c2;
printf("%d%c%d=",c1,F,c2);
scanf("%lf",&p);
if(j==7)
z='+';
else if(j==8)
z='-';
else if(j==9)
z='*';
else z='/';
switch(z){
case '+':
if(p==c)
strcpy(x,"Very good!");
else strcpy(x,"No.Please try again.");
goto x;
case '-':
if(p==c)
strcpy(x,"Excellent!");
else strcpy(x,"Wrong.Try once more.");
goto x;
case '*':
if(p==c)
strcpy(x,"Nice work!");
else strcpy(x,"Don't give up!");
goto x;
case '/':
if(p==c)
strcpy(x,"Keep up the good work!");
else strcpy(x,"Not correct.Keep trying.");
goto x;}
x: if(p==c)
{printf("\n\"%s\"\n\n",x);
f+=10;}
else printf("\n\"%s\"\n\n",x);}
while(i!=10);
printf("你的总分为:%d分\n回答正确率为:%d%%\n\n",f,f);
if (f<75)
printf("你的正确率低于75%%!请重新作答!\n\n");}
while(f<75);
break;
default:;}

}


把之前的一变就变了样,,感觉更复杂更麻烦了..


#include<stdio.h>

#include<stdlib.h>
#include<time.h>
#include<string.h>
int s/*任务选择*/,i=0/*计数器*/,f=0/*计分器*/,c1/*数1*/,c2/*数2*/,o/*符号*/,j/*随机*/;
double c/*答案*/,p/*输入*/;
char F/*四则运算*/,x[100]/*字符串*/;
int PDXT/*判断系统含正确率*/()
{
if(p!=c)
return 0;
else f+=10;
return 1;
}
void SZYS/*四则运算*/()
{
o=rand()%4;
if(o==0)
F='+',c=c1+c2;
else if(o==1)
F='-',c=c1-c2;
else if(o==2)
F='*',c=c1*c2;
else F='/',c=(double)c1/c2;
}
void PJXT/*评价系统*/(int a/*是否正确*/,int b/*类型1:普通;2:防疲劳;3:三次规则.*/)
{
j=rand()%4;
if(b==1 || b==3){
if(a==1){
i=0;
strcpy(x,"Right!");}
else {
i++;
if(b==3 && i==3)strcpy(x,"Wrong!You have tried three times!Test over!");
else strcpy(x,"Wrong!Please try again.");}}
else 
if(a==1){
if(j==0)strcpy(x,"Very good!");
else if(j==1)strcpy(x,"Excellent!");
else if(j==2)strcpy(x,"Nice work!");
else strcpy(x,"Keep up the good work!");}
else 
{if(j==0)strcpy(x,"No.Please try again.");
else if(j==1)strcpy(x,"Wrong.Try once more.");
else if(j==2)strcpy(x,"Don't give up!");
else strcpy(x,"Not correct.Keep trying.");}
printf("\n\"%s\"\n\n",x);
}
void main()
{ srand(time(NULL));
printf("欢迎使用计算机辅助教学系统!\n\n请选择要进行的任务(1~6):");
while(!(scanf("%d",&s) && s>=1 && s<=6))
printf("输入有误!请重新输入:");
switch(s)
{ case 1:
while(1)
{c1=rand()%10+1,c2=rand()%10+1,c=c1*c2;
printf("%d*%d=",c1,c2);
scanf("%lf",&p);
PJXT(PDXT(),1);}
break;
case 2:
while(1)
{c1=rand()%10+1,c2=rand()%10+1,c=c1*c2;
printf("%d*%d=",c1,c2);
scanf("%lf",&p);
PJXT(PDXT(),3);
if(i==3)
break;}
break;
case 3:
do{i++,c1=rand()%10+1,c2=rand()%10+1,c=c1*c2;
printf("%d*%d=",c1,c2);
scanf("%lf",&p);
PJXT(PDXT(),1);}
while(i!=10);
printf("你的总分为:%d分\n回答正确率为:%d%%\n",f,f);
break;
case 4:
do{i++,c1=rand()%10+1,c2=rand()%10+1;
SZYS();
printf("%d%c%d=",c1,F,c2);
scanf("%lf",&p);
PJXT(PDXT(),1);}
while(i!=10);
printf("你的总分为:%d分\n回答正确率为:%d%%\n",f,f);
break;
case 5:
do{i=0,f=0;
do{i++,c1=rand()%10+1,c2=rand()%10+1;
SZYS();
printf("%d%c%d=",c1,F,c2);
scanf("%lf",&p);
PJXT(PDXT(),1);}
while(i!=10);
printf("你的总分为:%d分\n回答正确率为:%d%%\n\n",f,f);
if (f<75)
printf("你的正确率低于75%%!请重新作答!\n\n");}
while(f<75);
break;
case 6:
do{i=0,f=0;
do{i++,c1=rand()%10+1,c2=rand()%10+1;
SZYS();
printf("%d%c%d=",c1,F,c2);
scanf("%lf",&p);
PJXT(PDXT(),2);}
while(i!=10);
printf("你的总分为:%d分\n回答正确率为:%d%%\n\n",f,f);
if (f<75)
printf("你的正确率低于75%%!请重新作答!\n\n");}
while(f<75);
break;
default:;}
}

相关文章推荐

为什么要把父类的析构函数设置为virtual

如果我们想通过基类的指针去释放子类的对象(这里必须是new出来的对象),就需要基类将基类的虚函数设置为virtual,看下面的例子: #include using namespace std; ...

为何要把类的构造函数定义为private

通常我们都将构造函数的声明置于public区段,假如我们将其放入private区段中会发生什么样的后果?没错,我也知道这将会使构造函数成为私有的,这意味着什么?     我们知道,当我们在程序中...

C语言,函数的声明,定义,以及调用(实现).举例应用.学了这么长时间,初步明白,汗颜啊

1)写一个函数,实现给数组中的元素随机赋值。 (2)写一个函数,实现给数组排序,升序序列。 (3)写一个函数,实现将数组元素输出。...

[tolua++]tolua++中暴露对象给lua时,一定要把析构函数暴露给lua 【转】

原文地址:http://www.cnblogs.com/egmkang/archive/2012/07/01/2572064.html   题目不知道怎么取才好,但是意思很简单: 如果你暴露一个...

VC++与Matlab混合编程之二:调用Matlab中M函数转换成DLL文件的形式

在VC中调用MATLAB的,总结有以下几种方法:1、是调用Matlab引擎;2、是调用Matlab中M函数转化成的dll文件;3、调用Matlab中M函数转化成c语言的函数。在本文当中重点讲解第二种方...

SQL SERVER函数将人民币数字转换成大写形式

CREATE FUNCTION [dbo].[f_num_chn] (@num numeric(14,5)) RETURNS varchar(100) WITH ENCRYPTION A...

javascript,jQuery自执行函数(匿名函数)为什么要把windows, jQuery, undefined作为参数传进去

为什么要传入 window ? 1. 可以提高程序效率        为什么能提高效率,得从javascript的机制说起,所谓的scope chain作用域链,在当前作用域中如果没有该属性(...

PROMETHEE方法的优先函数形式研究

  • 2013年07月10日 10:04
  • 173KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:刚学了函数..就要把开始的改编成函数形式的..到底什么是函数阿..?
举报原因:
原因补充:

(最多只允许输入30个字)