标题:逻辑错误吗,为什么输出都是2686728
只看楼主
河北沧州黄骅
Rank: 1
等 级:新手上路
帖 子:19
专家分:3
注 册:2015-10-18
结帖率:16.67%
已结贴  问题点数:10 回复次数:3 
逻辑错误吗,为什么输出都是2686728
#include <stdio.h>
int main(void)
{
    int profit,salary;
    printf("input a salary:");
    scanf("%d",&profit);
    if(profit<=1000)
    {salary=500;}
     else  if(profit>1000&&profit<=2000)
       {

       salary=500+profit*0.10;}
        else if(profit>2000&&profit<=5000)
        {salary=500+profit*0.15;}
        else if(profit>5000&&profit<=10000)
       {
           salary=500+profit*0.20;}
    else if(profit>10000)
       {

       salary=500+profit*0.25;}
    printf("salary=:%d",&salary);

}
搜索更多相关主题的帖子: include profit include profit 
2015-11-04 18:11
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
得分:5 
未验证!看你用了小数,但只定义了整数类型,估计和数据类型有关吧。

能编个毛线衣吗?
2015-11-04 20:12
河北沧州黄骅
Rank: 1
等 级:新手上路
帖 子:19
专家分:3
注 册:2015-10-18
得分:0 
回复 2楼 wmf2014
定义后也不行,逻辑错误我觉得是
2015-11-04 23:08
receive2012
Rank: 2
等 级:论坛游民
帖 子:1
专家分:10
注 册:2015-10-11
得分:5 
#include <stdio.h>
int main(void)
{
    double profit,salary;
    printf("input a salary:");
    scanf("%lf",&profit);
    if(profit<=1000)
    {salary=500;}
     else  if(profit>1000&&profit<=2000)
       {

       salary=500+profit*0.10;}
        else if(profit>2000&&profit<=5000)
        {salary=500+profit*0.15;}
        else if(profit>5000&&profit<=10000)
       {
           salary=500+profit*0.20;}
    else if(profit>10000)
       {

       salary=500+profit*0.25;}
    printf("salary=:%lf",salary);

salary profit定义为整型后与小数进行乘法会全部为0的,所以当profit>1000以后所有数值均为500     你最终输出的是&salary,不是salary变量   

直接运行你的程序会有警告...    同样新手学习中,看到的就这个有异常
2015-11-04 23:24



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




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

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