| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 403 人关注过本帖
标题:关于一个整数输入输出的问题
只看楼主 加入收藏
guo5520
Rank: 1
等 级:新手上路
帖 子:11
专家分:1
注 册:2010-3-2
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:3 
关于一个整数输入输出的问题
我编写的程序如下
#include<stdio.h>
int main(void)
{
    int item,i,a,y,x;

    printf("请输入一个长整数:");
    scanf("%d",&x);
    fflush(stdin);
    item=1;
    y=x;
    i=-1;
    if(x<0)
        x=-x;
    while(x!=0){
        item=item*10;
        x=x/10;
        i++;
    }
    item=item/10;
    do{
        a=y/item;
        printf("a%6d",a);
        y=y-a*item;
        item=item/10;
    }while(y!=0);
    printf("b\nc\n");
    return 0;
}
   
当我输入:123,时,结果应该是:a1   a2   a3,为什么结果成这样了?不懂,,求助!
图片附件: 游客没有浏览图片的权限,请 登录注册



搜索更多相关主题的帖子: 输入 输出 整数 
2010-04-14 09:03
酷酷甜菜
Rank: 2
等 级:论坛游民
帖 子:15
专家分:29
注 册:2010-4-11
收藏
得分:5 
你执行的结果是正确的
 printf("a%6d",a);  %6d是打印至少6个宽度的十进制整形
所有这句执行了3次
打印出 a     1a     2a     3
这里你没有换行
 printf("b\nc\n");当运行到这句时 就会在3后面打印出b然后换行打印出c
图片附件: 游客没有浏览图片的权限,请 登录注册

就是你那个结果了是不? 你认真想想


[ 本帖最后由 酷酷甜菜 于 2010-4-14 13:03 编辑 ]
2010-04-14 12:59
一口三个汉堡
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:3
帖 子:155
专家分:525
注 册:2010-3-21
收藏
得分:5 
printf("a%6d",a);系统默认向右对齐,所以你要他向左对齐,就在6d前面多加个-号
printf("a%-6d",a);


坚持做对的事情,而不是容易的事情。
2010-04-14 13:10
guo5520
Rank: 1
等 级:新手上路
帖 子:11
专家分:1
注 册:2010-3-2
收藏
得分:0 
恩,,我太二了!!
2010-04-16 18:31
快速回复:关于一个整数输入输出的问题
数据加载中...
 
   



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

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