一、实验目的与要求html
(1)掌握软件项目我的开发流程。git
(2)掌握Github上发布软件项目的操做方法。github
1.防止“不够减”的语句,当选择减法且num1小于num2时不够减不够减的时候,用临时变量交换两个操做数;编程
2.防止“除数为0”的程序漏洞,当num2被随机取值到0时,就将num2强制置为1,作除法时,将num1的值强制赋值给num1*num2,防止不能整除;小程序
而后电脑计算正确的结果提示用户输入答案而且电脑计算正确的结果。最后是判断用户是否答对了,答对了就返回1,不对则返回0(用来计算作对的题数)。以此循环!markdown
这个程序的缺陷是,当用户输入答案时,若用户输入了一个非整型字符,系统会崩溃;还有只是0~10之间的简单的运算,把范围局限了,但能够改进。还有是不能进行小数的运算架构
include <stdio.h>app
#include <stdlib.h>dom
void main() { 编程语言
int n=0,count=0; printf("\n欢迎使用小学生四则运算练习软件\n");
int ch=0;
printf("\n欢迎使用小学生四则运算练习软件\n\n");
while(1)
{
if(count==10)
{
printf("恭喜你在10道练习里作对了%d题! \n",n);
printf("\t1.继续练习\n\t2.退出");
scanf("%d",&ch);
if(ch==2)
{
break;
}
}
n+=yusuan(); count++;
}
}
int yusuan()
{
int ranswer=0; //正确答案
int uanswer=0; //用户输入的答案
int t=0,n=0; //临时变量
char op; //运算类别
int num1=0; //操做数1
int num2=0; //操做数2
srand(time(NULL)); //初始化随机数
num1=rand()%10; //取0—9之间的随机数
num2=rand()%10;
n=rand()%4+1; switch(n)
{ case 1: op='+'; break;
case 2: op='-'; break;
case 3: op='*'; break;
case 4: op='/'; break;
}
//加入一条防止“不够减”的语句,当选择减法且num1小于num2时不够减
//不够减的时候,用临时变量交换两个操做数
if((op=='-') && (num1<num2))
{ t=num1;
num1=num2;
num2=t;
}
//防止“除数为0”的程序漏洞
//当num2被随机取值到0时,就将num2强制置为1
//作除法时,将num1的值强制赋值给num1*num2,防止不能整除
if(op=='/')
{
if(num2==0)
{ num2=1; }
num1=num1*num2;
//防止num1不能被num2整除的语句 }
//输出测试题自己、提示用户输入
printf(" %d%c%d= ",num1,op,num2);
scanf("%d",&uanswer);
//程序计算正确结果
switch(op)
{ case '+': ranswer=num1+num2; break;
case '-': ranswer=num1-num2; break;
case '*': ranswer=num1*num2; break;
case '/': ranswer=num1/num2; break;
}
//评判,作对返回1,作错返回0
if(uanswer==ranswer)
{ printf("\t作对了!\n");
return 1;
} else
{ printf("\t作错了!\n");
return 0; }
}
运行结果:
PSP环节: