标题:求助!!小程序:输入数字字符转化为美元
取消只看楼主
yue_sss
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2017-3-31
结帖率:100%
已结贴  问题点数:20 回复次数:16 
求助!!小程序:输入数字字符转化为美元
程序如下,小弟初学c语言,这道题是c和指针上的一个问题,但是总是没有输出,还没有学到动态分配的内容,但是为啥一直啥输出都没有,求大神帮看看小弟谢过各位大神!

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define MAXCOUNT 10

char dst[MAXCOUNT];
char src[MAXCOUNT];
void dollars(register char *dst, register char *src);

int main(void)
{
    printf("input is :%s\n",dst);
    scanf("%s" , dst);
    dollars(dst, src);
    printf("translation is %s\n", src);
    return EXIT_SUCCESS;

}

void dollars(register char *dst, register char *src)
{
    int  len;

    if(dst==NULL || src==NULL)
    return;


    *dst++="$";
    len=strlen(src);

    if(len>=3)
    {
        int i;
        for(i=len-2;i>0;)
        {
            *dst++=*src++;
            if(--i>0 && i%3==0)
                *dst=',';
        }
    }
    else *dst='0';

    *dst++='.';
    *dst++= len<2 ? '0': *src++;
    *dst++= len<1 ? '0': *src;
    *dst  ='0';
}
搜索更多相关主题的帖子: register dollars include c语言 
2017-03-31 22:21
yue_sss
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2017-3-31
得分:0 
求大神帮忙看看,输入输出写的比较简陋,但不知道为啥啥都没有
2017-03-31 22:24
yue_sss
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2017-3-31
得分:0 
结果想达到的是这样的。。。
2017-03-31 22:32
yue_sss
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2017-3-31
得分:0 
程序代码:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define MAXCOUNT 10

char dst[MAXCOUNT];
char src[MAXCOUNT];
void dollars(register char *dst, register char *src);

int main(void)
{
    printf("input is :%s\n",dst);
    scanf("%s" , dst);
    dollars(dst, src);
    printf("translation is %s\n", src);
    return EXIT_SUCCESS;

}

void dollars(register char *dst, register char *src)
{
    int  len;

    if(dst==NULL || src==NULL)
    return;


    *dst++="$";
    len=strlen(src);

    if(len>=3)
    {
        int i;
        for(i=len-2;i>0;)
        {
            *dst++=*src++;
            if(--i>0 && i%3==0)
                *dst=',';
        }
    }
    else *dst='0';

    *dst++='.';
    *dst++= len<2 ? '0': *src++;
    *dst++= len<1 ? '0': *src;
    *dst  ='0';
}
2017-03-31 22:33
yue_sss
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2017-3-31
得分:0 
回复 5楼 renkejun1942
谢谢大神!!!研究对比下
2017-03-31 22:40
yue_sss
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2017-3-31
得分:0 
回复 7楼 renkejun1942
书后给的函数答案都是有问题的。。。请问大神当时是怎么利用这本书的?课后题是都做么,我是想都看一遍然后挑一些做,现在看了9章。。。做这个还是不行啊
2017-04-01 12:17
yue_sss
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2017-3-31
得分:0 
回复 7楼 renkejun1942
大神求助虽然有结果了,但为啥编译后的结果都显示乱码啊?
2017-04-01 15:04
yue_sss
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2017-3-31
得分:0 
回复 9楼 renkejun1942
这个题目在解题过程中会不会出现结果是乱码的情况呢,是编译器编码还是什么原因。。。
2017-04-01 16:24
yue_sss
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2017-3-31
得分:0 
回复 12楼 renkejun1942
不好意思 刚才没看到这个回复  我用的软件是codeblocks ,编译器是GNU GCC
2017-04-01 16:26
yue_sss
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2017-3-31
得分:0 
回复 15楼 renkejun1942
程序代码:
#include<stdio.h>
#include<string.h>



void dollars(register char *dst, register char *src);

int main(void)
{
    char s1[20];
    char s2[20];
    while(gets(s1) && s1[0]!='\0')
    {
        dollars(s1, s2);
        printf("translation is %s\n", s2);
    }
    return 0;

}

void dollars(register char *dst, register char *src)
{
    int  len;

    if(dst==NULL || src==NULL)
    return;


    *dst++="$";
    len=strlen(src);

    if(len>=3)
    {
        int i;
        for(i=len-2;i>0;)
        {
            *dst++=*src++;
            if(--i>0 && i%3==0)
                *dst=',';
        }
    }
    else *dst='0';

    *dst++='.';
    *dst++= len<2 ? '0': *src++;
    *dst++= len<1 ? '0': *src;
    *dst  ='0';
}

我后面的函数用的是课后的版本 即使错的也不应该输出是这样的吧
还有一个问题  从这里复制代码到code blocks里都是有编码问题。。。这个应该如何修复?
2017-04-01 16:52



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




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

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