| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 524 人关注过本帖
标题:一个简单但偶却搞不懂的规则问题
只看楼主 加入收藏
神龙赖了
Rank: 10Rank: 10Rank: 10
来 自:萨塔星
等 级:青峰侠
威 望:2
帖 子:711
专家分:1788
注 册:2012-10-13
结帖率:97.22%
收藏
已结贴  问题点数:10 回复次数:10 
一个简单但偶却搞不懂的规则问题
为什么当A为float类型的时候   dollars[i]+=A[i]%2;是错误的呢?
2012-10-14 21:26
神龙赖了
Rank: 10Rank: 10Rank: 10
来 自:萨塔星
等 级:青峰侠
威 望:2
帖 子:711
专家分:1788
注 册:2012-10-13
收藏
得分:0 
原式是这样的:
                #include <stdio.h>

int main(void)
{
    float amounts[5];
    long dollars[5];
    float cents[5];
    int i=0;
    float qq=0;
    int ff=0;

    for(i=0;i<5;i++)
    {
        printf(" %d<",i+1);
        scanf(" %0.2f",&qq);
        amounts[i]+=qq;
    }
    for(i=0;i<5;i++)
        cents[i]+=amounts[i]%1;
    for(i=0;i<5;i++)
    dollars[i]+=(long)amounts[i];
    for(i=0;i<5;i++)
    printf("\n第%d件物品的价钱为%d.%d美元",i+1,dollars[i],cents[i]);
    return 0;
}
   

I have not failed completely
2012-10-14 21:39
虾B写
Rank: 8Rank: 8
来 自:湖北
等 级:蝙蝠侠
威 望:3
帖 子:395
专家分:922
注 册:2009-10-1
收藏
得分:3 
((long) a[i]) %2

白娘故意下雨骗许仙的伞。祝英台十八里相送时装疯卖傻调戏梁山伯。七仙女挡住了董永的去路。牛郎趁织女洗澡时拿走了她的衣服。。。这些故事告诉我们;伟大爱情的开始,总归的有一个要先耍流氓!
2012-10-14 21:58
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:5 
这属于基础语法,自己上网查%的用法

总有那身价贱的人给作业贴回复完整的代码
2012-10-14 22:20
神龙赖了
Rank: 10Rank: 10Rank: 10
来 自:萨塔星
等 级:青峰侠
威 望:2
帖 子:711
专家分:1788
注 册:2012-10-13
收藏
得分:0 
谢谢,能帮忙把这个程序改对啊,

I have not failed completely
2012-10-14 22:22
你的双手
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:28
专家分:101
注 册:2012-10-13
收藏
得分:1 
你要实现什么功能? 为什么好多 “+=”?

双手 决定一切!
2012-10-15 11:26
白羊的记忆
Rank: 1
等 级:新手上路
帖 子:1
专家分:1
注 册:2012-10-15
收藏
得分:1 
我认为这个需要强制类型转换,转换成(int)型。
2012-10-15 11:32
小糊涂神c30
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:3
帖 子:198
专家分:809
注 册:2012-4-25
收藏
得分:0 
%只能用于整型类型的数据,所以你要把float型强制转换成整型类型的数据!
2012-10-15 11:47
神龙赖了
Rank: 10Rank: 10Rank: 10
来 自:萨塔星
等 级:青峰侠
威 望:2
帖 子:711
专家分:1788
注 册:2012-10-13
收藏
得分:0 
我修改了一下:
#include <stdio.h>

int main(void)
{
    float amounts[5];
    long dollars[5];
    long cents[5];
    int i=0;
    float qq=0;

    for(i=0;i<5;i++)
    {
        printf(" %d<",i+1);
        scanf(" %f",&qq);
        amounts[i]+=qq;
    }
    for(i=0;i<5;i++)
        cents[i]+=(long)100*(amounts[i]-(int)amounts[i]);
    for(i=0;i<5;i++)
    dollars[i]+=(long)amounts[i];
    for(i=0;i<5;i++)
    printf("\n第%d件物品的价钱为%0.2lf.%0.2lf美元",i+1,dollars[i],cents[i]);
    return 0;
}
这里没有了%,但输出却是一堆乱七八糟的数,到底哪里错了呢?

I have not failed completely
2012-10-15 18:54
神龙赖了
Rank: 10Rank: 10Rank: 10
来 自:萨塔星
等 级:青峰侠
威 望:2
帖 子:711
专家分:1788
注 册:2012-10-13
收藏
得分:0 
还请耐心的解决一下,谢谢

I have not failed completely
2012-10-15 18:58
快速回复:一个简单但偶却搞不懂的规则问题
数据加载中...
 
   



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

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