标题:从学校回来,老师给了一个作业 不太会. 达人帮我解决一下
只看楼主
lg90315
Rank: 1
等 级:新手上路
帖 子:13
专家分:1
注 册:2009-9-16
结帖率:50%
已结贴  问题点数:10 回复次数:20 
从学校回来,老师给了一个作业 不太会. 达人帮我解决一下
                     我是刚入门学C语言 上个星期问了一个问题得到了很好的答案 很详细 真的很感激
                                今天又有一个问题 我想不太明白 所以来问问 请大家帮我看一下 谢谢


        
    下面是题目:
  
        给一个不多与5位的正整数,要求:
     (1)求出他是几位数;
     (2)分别输出每一位数字;
     (3)按逆序输出各位数字,例如原数为321,应输出123.




         这道题 我的思路是  让输入的数字都÷1000 来看看他是几位数 但因为我刚学C语言 不是很清晰这个写程序思路   越想越迷糊了  希望大家帮我看一下  在线等待呢.(((
搜索更多相关主题的帖子: 老师 学校 作业 
2009-09-25 19:43
lg90315
Rank: 1
等 级:新手上路
帖 子:13
专家分:1
注 册:2009-9-16
得分:0 


  求 达人 帮我看一下这个题目 呵呵 谢谢 在线求解答中.
2009-09-25 19:46
lg90315
Rank: 1
等 级:新手上路
帖 子:13
专家分:1
注 册:2009-9-16
得分:0 


  来人呀..

            各位大大门
2009-09-25 19:54
lg90315
Rank: 1
等 级:新手上路
帖 子:13
专家分:1
注 册:2009-9-16
得分:0 
`

  同志们 想一下
2009-09-25 20:15
m456m654
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:783
专家分:2806
注 册:2009-9-17
得分:0 
外面有这样的一个帖子啊,你没去看看?
2009-09-25 20:34
wznshuai
Rank: 1
等 级:新手上路
帖 子:3
专家分:1
注 册:2009-9-25
得分:0 
不多于5位是吧,也就是>=5位了。定义这个数int a;scanf("%d",&a);
if(a/10000!=0)
{
此处证明是5位了。
万位=a/10000;
千位=a%10000/1000;
百位=a%1000/100;
十位=a%100/10;
个位=a%10;
求出每位数字了 你不会还不会倒着输吧?
}
else if(a/1000!=0)
{
如果运行到此处就是4位
}
else if(a/100!=0)
{
...
}
...下同.
2009-09-25 20:34
lg90315
Rank: 1
等 级:新手上路
帖 子:13
专家分:1
注 册:2009-9-16
得分:0 


  有这样的题目??求传送门~!!




          这样子除我是看明白了 但怎么写呢  第2个问看了一段时间我还是没有看明白 求详细解悉一下 谢谢 添麻烦了

[ 本帖最后由 lg90315 于 2009-9-25 20:54 编辑 ]
2009-09-25 20:49
m456m654
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:783
专家分:2806
注 册:2009-9-17
得分:0 
外面有个帖子,名字大概是:有两个题,小弟不回……  作者是挑战every。他里面的第二个题跟你的是一样的。你可以去看看。有人回答了。
2009-09-25 20:56
lg90315
Rank: 1
等 级:新手上路
帖 子:13
专家分:1
注 册:2009-9-16
得分:0 
以下是引用m456m654在2009-9-25 20:56:52的发言:

外面有个帖子,名字大概是:有两个题,小弟不回……  作者是挑战every。他里面的第二个题跟你的是一样的。你可以去看看。有人回答了。


  不行.
他的 int n,i;
    char shu[10];
    loop : printf("请输入一个不多于五位的正整数:\n");
    scanf("%s",shu);
    n=strlen(shu);
    if(n>5)
    {
        printf("输入的数多于五位!\n");
        goto loop;
    }
    printf("该数是%d位\n",n);
    printf("顺序:");
    for(i=0;i<n;i++)
    printf("%c ",shu[i]);
    printf("\n");
    printf("顺序:");
    for(i=n-1;i>=0;i--)
    printf("%c ",shu[i]);

  翻译出来的都是乱码

                        

               帮我解决一下 第1问和第2问 谢谢
2009-09-25 21:11
m456m654
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:783
专家分:2806
注 册:2009-9-17
得分:0 
这个题其实是不难,对你来说应该可以编出来。无非编写的不如别人的精炼,但是每个人都是这么过来的,还是建议你照自己的思路想法编写一下。不会没有方法,顶多会有笨方法。
我这里给你一个最笨的编程,你肯定能看懂,希望你看完后能自己再编写一个:
#include<stdio.h>
main()
{
    int num,ni,ge=0,shi=0,bai=0,qian=0,wan=0;
    printf(" Please input one number:\n");
    scanf("%d",&num);
    if(num/10==0)
    {
        printf("shi yi wei shu.");
        ge=num;
        ni=ge;
    }
    else if(num/100==0)
    {
        printf("shi liang wei shu.");
        ge=num%10;
        shi=num/10;
        ni=ge*10+shi;
    }
    else if(num/1000==0)
    {
        printf("shi san wei shu.");
        ge=num%10;
        shi=(num/10)%10;
        bai=num/100;
        ni=ge*100+shi*10+bai;
    }
    else if(num/10000==0)
    {
        printf("shi si wei shu.");
        ge=num%10;
        shi=(num/10)%10;
        bai=(num/100)%10;
        qian=num/1000;
        ni=ge*1000+shi*100+bai*10+qian;
    }
    else if(num/100000==0)
    {
        printf("shi wu wei shu.");
        ge=num%10;
        shi=(num/10)%10;
        bai=(num/100)%10;
        qian=(num/1000)%10;
        wan=num/10000;
        ni=ge*10000+shi*1000+bai*100+qian*10+wan;
    }
    else
    printf(" You have input the wrong number.\n");
    printf(" ta de mei yi wei shi:%d %d %d %d %d.\n",wan,qian,bai,shi,ge);
    printf("ni xu shu chu shi:%d.\n",ni);
}
当你熟练了以后,也就可以编的简单些了。希望对你有用。
(本程序中,在输入这个数的每一位数时有点不太好,不到五位的会填0,你自己完善吧。呵呵。)
2009-09-25 21:12



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




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

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