函数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)
}
你可以运行一下看看,有问题再问我吧
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)