c程序分析
发布网友
发布时间:2022-05-18 22:55
我来回答
共2个回答
热心网友
时间:2023-08-06 12:39
1 #include<stdio.h>
2 void add(int a,int b,int c) //函数add,计算a+b,并赋值给c
3 {
4 c=a+b;
5 printf("%d\t",c);//输出c,/t为转义序列符,水平制表符
6 printf("\n");//转移序列符,换行
7 }
8 void minus(int a,int b,int c) //函数minus,计算a-b,赋值给c
9 {
10 c=a-b;
11 printf("%d\t",c);
12 printf("\n");
13 }
14 void multiplication(int a,int b,int c) //函数
15 {
16 c=a*b;
17 printf("%d\t",c);
18 printf("\n");
19 }
20 void div(int a,int b,float c)//函数
21 {
22 c=(float)a/b;//“(float)”强制转换a/b结果为float型
23 printf("%f\t",c);
24 printf("\n");
25 }
26 void main() //主函数
27 {
28 int a,b,c;
29 float d;
30 char p;
31 puts("input A:\n"); //提示用户输入一个数字A,输入“input A:”这句后程序暂停,等待用户输入数字
32 scanf("%d",&a); //用户输入数字并按下回车后,此语句得到用户输入的数字并赋值给a
33 puts("input B:\n");
34 scanf("%d",&b);
35 do{//进入循环
36 puts("input operation:\n"); //提示用户输入运算符
37 getchar(); //函数getchar(),接收用户输入的运算符
38 p=getchar(); //将getchar()接收的字符赋值给p
39 if(p=='+') add(a,b,c);//如果接收的字符为+,运行函数minus,下同
40 else if(p=='-') minus(a,b,c);
41 else if(p=='*') multiplication(a,b,c);
42 else if(p=='/') div(a,b,d);
43 else puts("没有注册这个运算符号\n"); //如果输入的都不是+-*/,则运行这一句,输出“没有注册这个运算符号”
44 }while(p!='0');//输入0运算符的时候退出,
45 }
程序运行的时候,从mian()函数(26行)开始运行,运行到地39行,根据p的值调用前面4个定义的函数,如果p的值是+,则调用函数add,函数add运行完后,回到main()函数39行,跳过40-43行,进入44行,判断p的值,由于此时p的值是+,不为0,循环继续,程序跳到第35行,继续运行,让用户输入运算符,此时如果用户输入0,程序会输出“没有注册这个运算符号”,程序结束。
本人新手,如有不对请指正,大家一起学习~~
热心网友
时间:2023-08-06 12:40
四个子函数分别实现加,减,乘,除,所得结果都是存入‘c’。
我在程序里添加了一些注释,你看一下嘛
#include<stdio.h>
void add(int a,int b,int c)
{ //实现a+b,其值赋给c
c=a+b;
printf("%d\t",c);//输出c的值
printf("\n");//换行
}
void minus(int a,int b,int c)
{//实现a-b,其值赋给c
c=a-b;
printf("%d\t",c);
printf("\n");
}
void multiplication(int a,int b,int c)
{//实现a*b,其值赋给c
c=a*b;
printf("%d\t",c);
printf("\n");
}
void div(int a,int b,float c)
{//实现a/b,其值赋给c
c=(float)a/b;//a/b得结果强制转换为float型
printf("%f\t",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{
puts("input operation:\n");
getchar();// 输入一个字符
p=getchar(); //将该字符赋值给p
if(p=='+') add(a,b,c);else//当p='+'时,实现第一个子函数c=a+b
if(p=='-') minus(a,b,c);else //当p='-'时,实现第二个子函数c=a-b
if(p=='*') multiplication(a,b,c);else//当p='*'时,实现第三个子函数c=a*b
if(p=='/') div(a,b,d);else//当p='/'时,实现第四个子函数c=a/b
puts("没有注册这个运算符号\n"); //当p都不等于+、-、*、/时,输出"没有注册这个运算符号"
}while(p!='0');//输入0运算符的时候退出
}