一个简单的c语言问题,但是实在不知道哪错了(我还是小白),求助!!!

陌生归路 2018-09-15 10:15:33
#include <stdio.h>
int first (int m);
int second (int n);
int main(void)
{
int a=50;
char ch,sm;
float e;
printf("是%d吗?,是的话输入y,否则输入n\n",a);
scanf("%c",&ch);
while(ch!='y')
{
printf("Big or small?");
getchar();
scanf("%c",&sm);
if(sm=='b')
e=first(a*2);
if(sm=='s')
e=second(a/2);
printf("是%d吗?\n",e);
scanf("%c",&ch);
getchar();
a=e;
}
printf("Good!");
return 0;
}
int first (int m)
{
float c;
c=(m+m/2)/2;
return c;

}
int second (int n)
{
float d;
d=(n+n*2)/2;
return d;
}
*******************************************************************8
上面是我写的代码,但是为什么在问“Big or small"输入b或s后都是输出0呢???
...全文
334 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
陌生归路 2018-10-04
  • 打赏
  • 举报
回复
引用 5 楼 赵4老师的回复:
printf里面的%和变量的一一对应关系
scanf里面的%和变量以及变量前加不加&的一一对应关系
是C代码中非常容易出错的地方,而且通常编译还不出错。
所以在编译源代码之前值得专门仔细检查一遍甚至多遍。
嗯嗯,一定加以注意!!
赵4老师 2018-09-25
  • 打赏
  • 举报
回复
printf里面的%和变量的一一对应关系
scanf里面的%和变量以及变量前加不加&的一一对应关系
是C代码中非常容易出错的地方,而且通常编译还不出错。
所以在编译源代码之前值得专门仔细检查一遍甚至多遍。
陌生归路 2018-09-23
  • 打赏
  • 举报
回复
引用 2 楼 棉猴的回复:
在输出e的时候
printf("是%d吗?\n", e);

改为
printf("是%f吗?\n", e);
嗯嗯,谢谢
陌生归路 2018-09-23
  • 打赏
  • 举报
回复
引用 1 楼 薛定谔之猫的回复:
只是显示的问题,打印语句改一下就成,不过程序写法有些暴力哦
printf("是%d吗?\n",int(e));
多谢多谢,暴力。。。因为刚学吧
棉猴 2018-09-17
  • 打赏
  • 举报
回复
在输出e的时候
printf("是%d吗?\n", e);

改为
printf("是%f吗?\n", e);
薛定谔之死猫 2018-09-17
  • 打赏
  • 举报
回复
只是显示的问题,打印语句改一下就成,不过程序写法有些暴力哦
printf("是%d吗?\n",int(e));

15,440

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧