如何利用c语言利用子函数实现四则运算 加,减,乘,除

如何利用c语言利用子函数实现四则运算 加,减,乘,除,第1张

#include<stdio.h>迟链

void add(float a,float b)

{

printf("%f",a+b)

}

void sub(float a,float b)

{

printf("%f",a-b)

}

void mul(float a,float b)

{

printf("%f",a*b)

}

void div(float a,float b)

{

printf("%f",a/b)

}

int main()

{

int c

float a,b

printf("两数相加,选1\n")

printf("两数相减,选2\n")

printf("两数相码竖孙乘纤铅,选3\n")

printf("两数相除,选4.\n")

scanf("%d",&c)

if(c!=1&&c!=2&&c!=3&&c!=4)

{

printf("输入不合法!!")

exit(0)

}

printf("请输入 *** 作数a和b:")

scanf("%f%f",&a,&b)

switch(c)

{

case 1:add(a,b)break

case 2:sub(a,b)break

case 3:mul(a,b)break

case 4:div(a,b)break

}

return 0

}

# include <stdio.h>

int main(void)

{

double a, b

int chose

printf("欢迎使用我的计算器\n")

while (1)

{

printf("********************\n")

printf("1、两数相加\n")

printf("2、两数相减\n")

printf("3、两数相乘\n")

printf("4、两数相除\n")

printf("5、退出\n")

printf("********************\n")

scanf("%d", &chose)

/* if (chose<1 || chose>5)

{

printf("你的输入有误,请重新输入!\n")

continue

}*/

switch (chose)

{

case 1:

printf("请输入第一个数字:\n")

scanf("%lf", &a)

printf("请输入第二个数字:\n")

scanf("%lf", &b)

printf("%lf+%lf = %lf\n", a, b, a+b)

break

case 2:

printf("请输入第一个数字:\n")

scanf("%lf", &a)

printf("请输入第二个数字:\n")

scanf("%lf", &纯厅b)

printf("%lf-%lf = %lf\n", a, b, a-b)

break

case 3:

printf("请输入第档帆一个数字:\n")

scanf("%lf", &a)

printf("请输入第二个数字:\n")

scanf("%lf", &b)

printf("%lf*%lf = %lf\n", a, b, a*b)

break

case 4:

printf("请输入第一个数字做蠢隐:\n")

scanf("%lf", &a)

printf("请输入第二个数字:\n")

scanf("%lf", &b)

printf("%lf/%lf = %lf\n", a, b, a/b)

break

case 5:

printf("再见!\n")

return  

default:

printf("你的输入有误,请重新输入!\n")

continue

}

}

}

#include <string.h>

#include <stdio.h>

#include <stdlib.h>

#define N 100

int main(int argc, char const *argv[])

{

char arr[N] = {}

gets(arr)

char brr[N] = {}

gets(brr)

int len1,len2,i = 0,j = 0

len1 = strlen(arr)

len2 = strlen(brr)

int len = len1>len2?len1:len2

/*  c99之后数组初始化支持整型表达式,称为可变长数组,但按照c89的标准是不对的

int num1[len]//将字符串转换成翻转的整型数组

int num2[len]

*/

int* num1 = (int*)malloc(len*sizeof(int))

int* num2 = (int*)malloc(len*sizeof(int))

for (i = 0i <leni++)

{

num1[i] = i<len1 ? arr[len1-i-1]-'0':0

}

for (j = 0j <lenj++)

{

num2[j] = j<len2 ? brr[len2-j-1]-'0':0

}

//int sum[len]//定义和数组

int* sum = (int*)malloc(len*sizeof(int))

int flag=0//设进位符

for (i = 0i <leni++)

{

sum[len-1-i] = (num1[i]+num2[i]+flag)%10

flag = (num1[i]+num2[i]+flag)/10

}

if (flag == 1) printf("1")   //如果最高位有进位 则输出一个1

for (i = 0i <leni++)

{

printf("%d",sum[i])

}

printf("\n")

free(num1)

free(num2)

free(sum)

num1 = NULL

num2 = NULL

sum = NULL

return 0

}

扩展资料:

gets()函数用法

gets是从标准输入设备读字符串函数。

函数原型:char*gets(char*str);

功能为:从stdin流中读取字符串,直至接受到换行符或EOF时停止,并将读取的结果存放在buffer指针所指向的字符数组中。换行符不作为读取串的内容,读取的换行符被转换为‘\0’空字符,并由此来结束字符串。

注意:不会判断上限,以回搜绝判车结束读取,所以程序员应该宏拆确保buffer的空间足够大,以便在执行读 *** 作时不发生溢出。使用时需要包含stdio.h头文件

参数

str为字符串指针,用来存放读取到的数据。

返回值

读入成功,返回与参数buffer相同的指针;读入过程中遇到EOF(End-of-File)或发生错误,返回NULL指针。所以在遇到返回值为NULL的情况,要用ferror或feof函数检查是发生错世改误还是遇到EOF。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12477339.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-24
下一篇2023-05-24

发表评论

登录后才能评论

评论列表(0条)

    保存