.下面程序的功能是用switch语句进行+-*四种运算,例如:输入4*5回车,会输.下面程序的功?

.下面程序的功能是用switch语句进行+-*四种运算,例如:输入4*5回车,会输.下面程序的功?,第1张

好的,程序中存在的错误有五个:

函数main的前面缺少了返回类型关键字int。

函数main的参数列表后面缺少了括号。

变量a、b、jieguo没有初始化。

在switch语句的default分支里面,应该使用break语句来跳出switch语句,否则会执行下面的代码。

printf函数中的格式化字符串中,应该使用%f格式化浮点数而不是%d格式化整数。

下面是修改完成后的程序:

#include <stdio.h>

int main(void) {

float a = 0, b = 0, jieguo = 0

char fuhao

printf("请输入+、-、或/号构成的表达式(如45):")

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

switch (fuhao) {

case '+':

jieguo = a + b

break

case '-':

jieguo = a - b

break

case '*':

jieguo = a * b

break

case '/':

jieguo = a / b

break

default:

printf("输入错误,请重新输入!\n")

break

}

printf("%6.1f%c%6.1f=%6.1f\n", a, fuhao, b, jieguo)

return 0

}

注意,在修改程序之后,我们需要重新给变量a、b和jieguo赋初值0,以避免在程序中使用未初始化的变量而出现不可预期的错误。

从上往下写答案吧:

#include "stdio.h"

#include "stdlib.h"

void main()

{

int ( *a,*b,*c)//定义三个整形指针变量

int max

a=(int*)malloc(sizeof(int))//分配内存

b=(int*)malloc(sizeof(int))

c=(int*)malloc(sizeof(int))

printf("输入三个整数(a,b,c):")

scanf("%d,%d,%d",( a,b,c))

if(*a>*b)//记着要加间接引用符哦,要访问的是指针所指向的内存空间里的数据

( max=*a )

else

( max=*b )

if(max<( *c ))

(max=*c )

printf("%d",max)

free(a)//释放存储空间

free(b)

free(c)

}

你可以运行一下看看,有问题再问我吧


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

原文地址: http://outofmemory.cn/yw/11155431.html

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

发表评论

登录后才能评论

评论列表(0条)

保存