#include<stdio.h>
#include <math.h>
int main()
{
int m;
int x;
double y;
printf("x=");
scanf("%lf",&x);
m=x/2;
switch(m)
{
case 0: y=x; printf("y=%lf\n",y);break;
case 1:
case 2: y=x*x+1; printf("y=%lf\n",y);break;
case 3:
case 4: y=sqrt(x+1); printf("y=%lf\n",y);break;
default: y=1/(x+1); printf("y=%lf\n",y);
}
}
6 个回答
开心的记忆
赞同来自 :
scanf放错了格式转换符。
饮下年华
赞同来自 :
你的定义为
int x;
它只能用%d来输入,不能用%lf的
所以你程序改
scanf("%lf",&x);
为
scanf("%d",&x);
就可以得到正确的结果了
天天是个大暖男
赞同来自 :
程序能正确运行,几种结果如下:
主要修改为:
①scanf("%d",&x); 因为前面声明的是:int x;
②default: y=1.0/(x+1); printf("y=%lf\n",y);因为y 是浮点型的。
浅安时光
赞同来自 :
请将 scanf("%lf",&x); 改为 scanf("%d",&x);
你这占位符都不对,输入进去的结果只能是0. m=0的话也只会调用 case 0: 这个选项。
一生何求
赞同来自 :
x是int型的,你输入错了,scanf("%lf",&x);-scanf(“%d”,x);
纵我深情
赞同来自 :
女孩们还没能帮忙还没好吗
提问者
威望
粉丝
感谢
积分
赞同
提问
文章
回复
私信 问Ta
关注问题人数 7 人
相关问题