| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1101 人关注过本帖, 1 人收藏
标题:printf问题
只看楼主 加入收藏
hellobbs2010
该用户已被删除
收藏(1)
已结贴  问题点数:20 回复次数:14 
printf问题
提示: 作者被禁止或删除 内容自动屏蔽
搜索更多相关主题的帖子: printf 
2010-05-08 16:09
jcslt
Rank: 8Rank: 8
来 自:90-xx.com
等 级:蝙蝠侠
帖 子:251
专家分:975
注 册:2009-10-10
收藏
得分:0 
程序代码:
#include<stdio.h>
int main()
{
int income,tax;
printf("Please input your income:");
while(scanf("%d",&income)!=-1)
{
    printf("\nIncome = %d greenbacks\n",income);
    if(income<6000)
         tax=(int)income*3/10.0;
     else
        tax=(int)income*6/10.0;
    printf("Tax = %d greenbacks\n",tax);
    printf("\nPlease input your income:");
}
return 0;
}

www.
2010-05-08 16:13
hellobbs2010
该用户已被删除
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2010-05-08 16:32
hellobbs2010
该用户已被删除
收藏
得分:0 
回复 2楼 jcslt
提示: 作者被禁止或删除 内容自动屏蔽
2010-05-08 16:36
jcslt
Rank: 8Rank: 8
来 自:90-xx.com
等 级:蝙蝠侠
帖 子:251
专家分:975
注 册:2009-10-10
收藏
得分:0 
回复 4楼 hellobbs2010
什么问题,是计算结果精度问题吗!

www.
2010-05-08 17:22
twtjmdxk
Rank: 1
等 级:新手上路
帖 子:3
专家分:2
注 册:2010-4-21
收藏
得分:2 
#include<stdio.h>

int main()
{
int income;
double tax;
printf("Please input your income:");
scanf("%d",&income);
while(income!=-1)
{
    printf("\nIncome = %d greenbacks\n",income);
    if(income<6000)
         tax=income*0.3;
     else
        tax=income*0.6;
    printf("Tax = %f greenbacks\n",tax);
    printf("\nPlease input your income:");
}
return 0;
}
只共参考
2010-05-08 17:34
草狼
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:2
帖 子:577
专家分:1040
注 册:2010-4-6
收藏
得分:5 
if(income<6000)
    printf("Tax = %d greenbacks\n", income*0.3);
else
    printf("Tax = %d greenbacks\n", income*0.6);

这错在你输出的结果是以整型输出的  带income*0.6的结果为FLOAT型 所以答案错了
改法:
1:if(income<6000)
    printf("Tax = %f greenbacks\n", income*0.3);
else
    printf("Tax = %f greenbacks\n", income*0.6);


2:  if(income<6000)
    printf("Tax = %d greenbacks\n", (int)(income*0.3));
else
    printf("Tax = %d greenbacks\n", (int)(income*0.6));
2010-05-08 18:37
hellobbs2010
该用户已被删除
收藏
得分:0 
回复 5楼 jcslt
提示: 作者被禁止或删除 内容自动屏蔽
2010-05-08 19:54
hellobbs2010
该用户已被删除
收藏
得分:0 
回复 7楼 草狼
提示: 作者被禁止或删除 内容自动屏蔽
2010-05-08 19:57
qiankl520
Rank: 2
等 级:论坛游民
帖 子:1
专家分:13
注 册:2009-11-22
收藏
得分:13 
#include<stdio.h>

int main()
{
int income,tax;
printf("Please input your income:");
while(scanf("%d",&income)!=EOF)
{
    printf("\nIncome = %d greenbacks\n",income);
    if(income<6000)
    printf("Tax = %d greenbacks\n", (int)(income*0.3));
else
    printf("Tax = %d greenbacks\n", (int)(income*0.6));
    printf("\nPlease input your income:");
}
return 0;
}
问题的主要在于强制类型的转换!在此我们强制类型转换的目的是将表达式income*0.3或者income*0.6得值转换成int型,所以必须将整个表达式用圆括号括起来。
2010-05-08 22:42
快速回复:printf问题
数据加载中...
 
   



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

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