| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1836 人关注过本帖
标题:整形输入,字符输出。
只看楼主 加入收藏
c821101017
Rank: 2
等 级:论坛游民
帖 子:33
专家分:10
注 册:2011-9-21
结帖率:100%
收藏
已结贴  问题点数:2 回复次数:14 
整形输入,字符输出。
    望各位帮忙看下下面这段程序。它的作用是将输入的一串数字转换成字符形式输出,如输入123,则输出要是"123"。但是我觉得这个程序只能输出一串字符中的第一个字符,即只能输出“1”。望大家指教……
程序代码:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void main()
{
    void convert(int n);
    int number;
    printf("Ipput an integer: ");
    scanf("%d",&number);
    printf("output: ");
    if(number<0)
    {
        putchar('-');
        number=-number;
    }
    convert(number);
    putchar('\n');
}
void convert(int n)
{
    int i;
    if((i=n/10)!=0)
        convert(i);
    putchar(n%10+'0');
}
搜索更多相关主题的帖子: 整形 
2011-09-23 09:21
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
你自己看看代码,为什么不是只输出一个数字呢?这种问题不应该拿出来问的!!!

授人以渔,不授人以鱼。
2011-09-23 09:23
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:1 
程序代码:
#include <stdio.h>
#include <string.h>
int main()
{   
    int i,j,k;
    int n;
    while(EOF != scanf("%d",&n))
    {
        char a[100] = {0};
        j = 0;
        while(n)
        {
            a[j++] = n%10+48;
            n/=10;
        }
        while(j)
            putchar(a[--j]);
        printf("\n");
    }
    return 0;
}

                                         
===========深入<----------------->浅出============
2011-09-23 09:30
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
回复 3楼 laoyang103
写程序太快,检查一下有没有瑕疵和可以修改的地方吧。

授人以渔,不授人以鱼。
2011-09-23 09:39
回忆、想忘
Rank: 1
等 级:新手上路
帖 子:40
专家分:7
注 册:2010-12-24
收藏
得分:0 
#include<stdio.h>
void convert(int n);
void main()
{
    int number;
    printf("Ipput an integer: ");
    scanf("%d",&number);
    printf("output: ");
    if(number<0)
    number=-number;
    convert(number);
    putchar('\n');
}
void convert(int n)
{
    printf("\"%d\"",n);
}
这个行不行啊 各位大大
2011-09-23 09:53
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
回复 5楼 回忆、想忘
你用各种数据测试一下看是否都满足要求?

授人以渔,不授人以鱼。
2011-09-23 09:55
c821101017
Rank: 2
等 级:论坛游民
帖 子:33
专家分:10
注 册:2011-9-21
收藏
得分:0 
回复 2楼 TonyDeng
    很惭愧,实在没看明白,还望指教……
2011-09-23 12:37
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
回复 7楼 c821101017
你连一个循环语句都没有,何来的多于一个输出?

授人以渔,不授人以鱼。
2011-09-23 12:42
c821101017
Rank: 2
等 级:论坛游民
帖 子:33
专家分:10
注 册:2011-9-21
收藏
得分:0 
回复 3楼 laoyang103
    你这个程序能运行出来结果,但是程序不能终止……你的程序可以这样改下:
程序代码:
#include <stdio.h>
#include <string.h>
int main()
{  
    int j;
    int n;
    scanf("%d",&n);
    char a[100] = {0};
    j = 0;
    while(n)
    {
       a[j++] = n%10+48;
       n/=10;
    }
    while(j)
        putchar(a[--j]);
    printf("\n");
    return 0;
}
2011-09-23 12:49
c821101017
Rank: 2
等 级:论坛游民
帖 子:33
专家分:10
注 册:2011-9-21
收藏
得分:0 
回复 8楼 TonyDeng
    你理解错了,其实我的想法是和你一样的,就是认为只会输出一个字符……但是我这个程序的结果却能将整个数字转换成字符形式输出。这正是我不明白的地方。
2011-09-23 12:52
快速回复:整形输入,字符输出。
数据加载中...
 
   



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

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