标题:[求助]类型转换
只看楼主
心动音符
Rank: 1
等 级:禁止访问
威 望:1
帖 子:832
专家分:0
注 册:2005-9-15
 问题点数:0 回复次数:8 
[求助]类型转换
#include <iostream>
using namespace std;
int main()
{
float i,j,k;
int temp;
cin>>i>>j;
j=i/j; k=j;k=j*100;k=(int)k;
j=j*1000;
temp=(int)j;
temp=temp%10;
if(temp>=5)
{k=k+1;
k=k/100;
cout<<k<<endl;}
else
{k=k/100;
cout<<k<<endl;}
return 0;
} 我把temp换成j为什么就会出错呢?如果是float的原因那为什么k就没问题呢?
搜索更多相关主题的帖子: temp int 类型 cout endl 
2006-06-30 15:14
huanguyu
Rank: 1
等 级:新手上路
帖 子:90
专家分:0
注 册:2006-4-26
得分:0 
我运行了   没出错  我用的是VC++6.0

看越多书就发现自己越无知 于是就越想知道更多
2006-06-30 16:49
心动音符
Rank: 1
等 级:禁止访问
威 望:1
帖 子:832
专家分:0
注 册:2005-9-15
得分:0 
你是把temp换成j了吗

2006-06-30 17:25
elitiwin
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2006-5-28
得分:0 
以下是引用心动音符在2006-6-30 15:14:35的发言:
#include <iostream>
using namespace std;
int main()
{
float i,j,k;
int temp;
cin>>i>>j;
j=i/j; k=j;k=j*100;k=(int)k;
j=j*1000;
temp=(int)j; 你指的将这行换为j=(int)j吗?
temp=temp%10;
if(temp>=5)
{k=k+1;
k=k/100;
cout<<k<<endl;}
else
{k=k/100;
cout<<k<<endl;}
return 0;
} 我把temp换成j为什么就会出错呢?如果是float的原因那为什么k就没问题呢?

temp=(int)j; 你指的将这行换为j=(int)j吗?
这样换没有错,这是正常的类型转换.
不过换之后,由于你的temp没有被附值,就直接执行temp=temp%10;
会出现警告

2006-07-01 08:10
心动音符
Rank: 1
等 级:禁止访问
威 望:1
帖 子:832
专家分:0
注 册:2005-9-15
得分:0 
当然是把所有的TEMP全换成J 了
它说我invalid operands"float"and"int"to binary'operator%'
有错误 好像是类型有问题 但我觉得不应该有问题啊。

2006-07-01 09:05
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
得分:0 

建议 :你提问的时候最好在该行的右边注释问题


[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-07-01 09:37
心动音符
Rank: 1
等 级:禁止访问
威 望:1
帖 子:832
专家分:0
注 册:2005-9-15
得分:0 
OK

2006-07-01 14:31
freshman42
Rank: 1
等 级:新手上路
威 望:1
帖 子:94
专家分:0
注 册:2005-12-4
得分:0 
浮点型是不能求余的

2006-07-01 15:11
chengenius
Rank: 1
等 级:新手上路
帖 子:41
专家分:0
注 册:2006-5-23
得分:0 

嗯嗯。。

2006-07-01 19:18



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




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

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