标题:萌新提问
只看楼主
Sinar
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2018-10-16
 问题点数:0 回复次数:9 
萌新提问
体重秤,sw为标准体重=身高-105,高于1.1sw的偏胖,低于0.9sw为偏瘦,中间的为正常。然后。。
#include<stdio.h>
void main()
{
int w,h,sw;
scanf("%d %d,&w,&h");
sw=h-105;
if(w>1.1*sw)
printf("胖");
else
if(w<0.9*sw)
printf("瘦");
else
printf("正常");
}
我得到的结果总是偏胖,求解。
搜索更多相关主题的帖子: 提问 int scanf printf 结果 
2018-10-16 18:31
Tomorrw_I
Rank: 10Rank: 10Rank: 10
等 级:禁止访问
威 望:6
帖 子:406
专家分:1712
注 册:2018-10-16
得分:0 



自己看一下吧!  既然是新手,就不要偷懒,变量定义,要养成习惯,用x,y,z这些表达,过几天,你都不知道自己写的是什么吧

新手IF这些语句,该用括号用括号吧!

学C有用吗?
学C++有前途吗?
数据库有必要学吗?
……
别问,你还什么都不会,学就对了
……
2018-10-16 21:48
w1480569941
Rank: 2
来 自:河南省周口市项城市
等 级:论坛游民
威 望:1
帖 子:21
专家分:27
注 册:2018-10-15
得分:0 
回复 2楼 Tomorrw_I
好的  谢谢
2018-10-16 21:55
C基础
Rank: 6Rank: 6
等 级:侠之大者
威 望:6
帖 子:133
专家分:421
注 册:2018-10-15
得分:0 
scanf("%d %d,&w,&h")这条语句出现错误,应该改成scanf("%d%d",&w,&h);双引号不应该把取地址符号也包含在内,你改成这条语句之后然后输入53  175可以得到瘦这个数据。希望对你有所帮助,我个人认为在编程序的时候可以附加一些文字,目的是为了让自己的程序可读性增加,便于别人看懂的同时自己看检查的时候也相对方便些。比如这条语句scanf("%d%d",&w,&h);可以写成scanf("体重为:%d身高为%d",&w,&h);,还有就是如果输入的数据不是字符型的话尽量在中间不要自己加上空格,逗号之类的符号(加文字没有事,他会自己显示出来),例如不要像这样scanf("%d,%d",&w,&h);(中间多了空格),因为这样在输入数据的时候当w输入完成之后必须要打一个逗号,然后再输入h的数值,这样给自己添加了不必要的麻烦,如果是连续%d%d的话这样在输入的时候加多少空格都没有问题。可以给自己输入数据的时候带来方便。
2018-10-16 22:02
Tomorrw_I
Rank: 10Rank: 10Rank: 10
等 级:禁止访问
威 望:6
帖 子:406
专家分:1712
注 册:2018-10-16
得分:0 
回复 3楼 w1480569941
你的代码,逻辑都有,代码编写不规范而已

主要逻辑错误是单位,体重的单位,如果是按斤,而不是公斤输入,就会出现你遇到的错误!

刚看你代码,一下子也没看出错误在哪!  我用excel表格,列了下数据,就明白了!

体重按公斤算,界线点一下就出来了

学C有用吗?
学C++有前途吗?
数据库有必要学吗?
……
别问,你还什么都不会,学就对了
……
2018-10-16 22:33
w1480569941
Rank: 2
来 自:河南省周口市项城市
等 级:论坛游民
威 望:1
帖 子:21
专家分:27
注 册:2018-10-15
得分:0 
回复 2楼 Tomorrw_I
#include<stdio.h>
#include<stdlib.h>
int main()
{
    int Weight,Height,StandarWeight; //定义体重 身高 标准体重
    int X=105; //标准差
    double Y=1.1,Z=0.9; //定义标准差体系
    while(1)
    {
        printf("请输入体重(计量单位为KG):");
        scanf("%d",&Weight);
        printf("请输入身高(计量单位CM):");
        scanf("%d",&Height); //输入体重身高
        StandarWeight=Height-X;
        if(Weight>Y*StandarWeight)
        {
            printf("胖,请注引减少饮食,增加锻炼\n");//判断标准
        }
        else if(Weight>Z*StandarWeight)
        {
            printf("瘦,请注意保证饮食\n");
        }
        else
            printf("正常体重,注意保持\n");
    }
    return 0;
}
请输入体重(计量单位为KG):160
请输入身高(计量单位CM):185
胖,请注引减少饮食,增加锻炼
请输入体重(计量单位为KG):


#include<stdio.h>
#include<stdlib.h>
int main()
{
    int Weight,Height,StandarWeight; //定义体重 身高 标准体重
    int X=105; //标准差
    double Y=1.1,Z=0.9; //定义标准差体系
    while(1)
    {
        printf("请输入体重(计量单位为KG):");
        scanf("%d\n",&Weight);
        printf("请输入身高(计量单位CM):");
        scanf("%d\n",&Height); //输入体重身高
        StandarWeight=Height-X;
        if(Weight>Y*StandarWeight)
        {
            printf("胖,请注引减少饮食,增加锻炼\n");//判断标准
        }
        else if(Weight>Z*StandarWeight)
        {
            printf("瘦,请注意保证饮食\n");
        }
        else
            printf("正常体重,注意保持\n");
    }
    return 0;
}
请输入体重(计量单位为KG):160
160
请输入身高(计量单位CM):175
胖,请注引减少饮食,增加锻炼
请输入体重(计量单位为KG):
为什么第二个要输入两次啊?  只是多了\n而已啊 ??
2018-10-16 22:37
Tomorrw_I
Rank: 10Rank: 10Rank: 10
等 级:禁止访问
威 望:6
帖 子:406
专家分:1712
注 册:2018-10-16
得分:0 
输入结束,一般用\n来告诉系统,输入完成!
第二个,在里面加了个\n,你说呢?

学C有用吗?
学C++有前途吗?
数据库有必要学吗?
……
别问,你还什么都不会,学就对了
……
2018-10-16 22:41
w1480569941
Rank: 2
来 自:河南省周口市项城市
等 级:论坛游民
威 望:1
帖 子:21
专家分:27
注 册:2018-10-15
得分:0 
回复 7楼 Tomorrw_I
刚学 老是习惯在后面加个\n
2018-10-16 22:42
Tomorrw_I
Rank: 10Rank: 10Rank: 10
等 级:禁止访问
威 望:6
帖 子:406
专家分:1712
注 册:2018-10-16
得分:0 
回复 8楼 w1480569941
慢慢来,加油!

学C有用吗?
学C++有前途吗?
数据库有必要学吗?
……
别问,你还什么都不会,学就对了
……
2018-10-16 22:42
w1480569941
Rank: 2
来 自:河南省周口市项城市
等 级:论坛游民
威 望:1
帖 子:21
专家分:27
注 册:2018-10-15
得分:0 
回复 9楼 Tomorrw_I
嗯嗯 谢谢大佬 我也是刚找到这个论坛 进来学习学习
2018-10-16 22:46



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-490448-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.242801 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved