程序的分析,都从main()函数说起:
main函数开始定义了5个变量a,b,c,d,p;
puts表示输入提示,第一个输入的是a,第二个输入的是b;
do表示循环大括号内的内容;现在进入大括号内部:
输出 :input operation:
getchar()表示输入一个字符,编译器用字符规则去判定;输入的字符复制给p
if 表示判断语句 :如果……
if(p=='+') add(a,b,c):如果输入的符号是加号“+”则执行add(a,b,c)函数。这里面add是函数调用,它代表了一组功能,具体的功能在上面的add里面写得很清楚了。是将a+b的值给c 最后输出c
同理if(p=='-') minus(a,b,c);else :如果输入的符号是“-”,执行minus(a,b,c)函数,具体函数功能见minus(a,b,c)函数,c=a-b 并把c输出
if(p=='*') multiplication(a,b,c);else…………
if(p=='/') div(a,b,d)………………
一个道理。
总结:
这个程序完成的是四则运算,首先输入两个数字,再输入一个运算符,程序会根据输入的运算符进行相应的运算;如果输入的运算符不是加、减、乘、除中的一个,则提示“没有注册这个运算符号”;当输入为0时,程序退出。
这是一个计算器的程序,可以做加减乘除的基本运算(仅限整数范围内)
上面定义了加减乘除四个函数,下面在main函数里提示输入a,然后提示输入b,然后提示输入操作符,如果是+,就调用加那个函数,其他一样。如果输入的不是这四种,就提示没有注册这个运算符号。如果输入的是0,就退出。
do while循环表示while这个条件的时候就循环。
#include
void add(int a,int b) //加法函数,如d=add(5,6);则d=11
{
int c;
c=a+b;
printf("%d",c);
printf("\n");
}
int minus(int a,int b) //减法函数,同加法函数一样,这个函数有错
{
int c; //不应该有输入c,意思是把a的值减b,
c=a-b; //结果放在c里。所以c不应该在函数中
printf("%d",c); //已经给你该好了
printf("\n");
}
void multiplication(int a,int b)//乘法函数,同上,给你该好了
{
int c;
c=a*b;
printf("%d",c);
printf("\n");
}
void div(int a,int b)
{
float c;
c=(float)a/b; //a/b前面加(float)是强制类型转换,把a/b的值
//变成float类型
printf("%f",c);
printf("\n");
}
void main()
{
int a,b,c;
float d;
char p;
puts("input A:\n");
scanf("%d",&a); //从键盘输入一个数给a
puts("input B:\n");
scanf("%d",&b); //从键盘输入一个数给b
do{ //这里是do循环,先要执行下面的语句
puts("input operation:\n");
// getchar(); //这里有问题,从键盘输入字符没有给任何变量
p=getchar(); //从键盘输入一个变量给p;
if(p=='+') c=add(a,b); //如果输入是加号,则调用add()函数;
else if(p=='-') minus(a,b);
else if(p=='*') multiplication(a,b);
else if(p=='/') div(a,b);
else puts("没有注册这个运算符号\n");
}while(p!='0');//输入0运算符的时候退出
} //上面的函数已经改好了,是计算函数,先输入一个值给a,这输入一个值给b,
//然后在输入运算符给p,如果是+号,就把a+b的结果输出。。。。。