标题:输出数组问题 两个代码有何不同
只看楼主
komorebi0110
Rank: 2
来 自:上海
等 级:论坛游民
帖 子:145
专家分:17
注 册:2019-11-23
结帖率:96.88%
已结贴  问题点数:13 回复次数:6 
输出数组问题 两个代码有何不同
当时写的时候参考了一下旁边的dalao 然后改进了一下 但是平台只给我对了2/3 请看一下为什么
搜索更多相关主题的帖子: 代码 数组 平台 不同 输出 
2019-12-21 11:03
komorebi0110
Rank: 2
来 自:上海
等 级:论坛游民
帖 子:145
专家分:17
注 册:2019-11-23
得分:0 
《Beginning C》第五章Array课后习题 5.3,输出中的美分请保留两位小数。
编写一个程序,从键盘读入5个值,将它们存储到一个float类型的数组amounts中。创建两个包含了5个long元素的数组dollars和cents。将amounts数组元素的整数部分存储到dollars的对应元素中,amounts数组元素的小数部分存储到cents中,只保留两位数字(例如amouts[1]的值是2.75,则把2存储到dollars[1]中,把75存储到cents[1]中)。以货币格式输出这两个long类型的数组值(如$2.75)
如输入
1.111 2.22 3.33 4.44 5.55
输出
$1.11 $2.22 $3.33 $4.44 $5.55

我想要两颗西柚。
2019-12-21 11:03
komorebi0110
Rank: 2
来 自:上海
等 级:论坛游民
帖 子:145
专家分:17
注 册:2019-11-23
得分:0 
#include<stdio.h>
int main()
{
float amounts[5];
int i=0;
while(i!=5)
{scanf("%f",&amounts[i]);
i++;}
long dollars[5],cents[5];
for(int i=0;i<5;i++)
{
    dollars[i]=amounts[i];
    cents[i]=100*(amounts[i]-dollars[i]);
    printf("$%d.%d",dollars[i],cents[i]);
    if(cents[i]<10) printf("0");
    printf(" ");
}   
return 0;}//我的

我想要两颗西柚。
2019-12-21 11:06
komorebi0110
Rank: 2
来 自:上海
等 级:论坛游民
帖 子:145
专家分:17
注 册:2019-11-23
得分:0 
#include <stdio.h>
void print(long a,long b);
int main()
{
    float amount[5];
    long dollars[5], cents[5];
    for (int i =0;i< 5;++i) {
        scanf("%f",&amount[i]);
        dollars[i]=amount[i];
        cents[i]=amount[i]*100-dollars[i]*100;
        print(dollars[i],cents[i]);}
    return 0;}
void print(long a, long b) {
    printf("$%ld.%ld",a, b);
    if (b<10)
     printf("0");
    printf(" ");
    return;
}//旁边大佬的

我想要两颗西柚。
2019-12-21 11:08
komorebi0110
Rank: 2
来 自:上海
等 级:论坛游民
帖 子:145
专家分:17
注 册:2019-11-23
得分:0 
我明明感觉一模一样啊

我想要两颗西柚。
2019-12-21 11:08
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:13 
两段代码都是错误的,只说你的代码吧
cents[i]=100*(amounts[i]-dollars[i]); 应该是 cents[i]=100*(amounts[i]-dollars[i]+0.5);
printf("$%d.%d",dollars[i],cents[i]); 应该是 printf("$%ld.%02ld",dollars[i],cents[i]);
if(cents[i]<10) printf("0"); 看不懂是什么意思?难道你希望输入 1.02,输出 $1.20 ?
2019-12-21 11:18
komorebi0110
Rank: 2
来 自:上海
等 级:论坛游民
帖 子:145
专家分:17
注 册:2019-11-23
得分:0 
回复 6楼 rjsp
!!明白了 非常感谢
可是他的就是被AC了 凭什么啊

我想要两颗西柚。
2019-12-21 12:06



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




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

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