| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 705 人关注过本帖
标题:编程题:我找了好久都没有找到错误请大家帮我找找
只看楼主 加入收藏
bianfeng
Rank: 1
等 级:新手上路
帖 子:199
专家分:0
注 册:2007-11-28
结帖率:0
收藏
 问题点数:0 回复次数:8 
编程题:我找了好久都没有找到错误请大家帮我找找
/*题目是这样的:给出一个不多于4位的正整数,按以下要求来编程
   1,求出它是几位数
   2,分别打印每一位数字
   3,按逆序打印出各位数字*/
#include <stdio.h>
void main()
{
 int nam,g,s,b,q,wei;
 printf("请输入不多于四位的正整数:");
 scanf("%d",&nam);
 printf("\n");
 if (nam<=9999&&nam>999)           /*判断输入数字的位数*/
     wei=4;
 else if (nam<=999&&nam>99)
     wei=3;
 else if (nam<=99&&nam>9)
     wei=2;
 else if (nam<=9&&nam>0)
     wei=1;
 else printf("你输入的数大于四位数或者不是正整数\n");
 q=nam/1000;                        /*求出千位*/
 b=(nam-q)/100;                     /*求出百位*/
 s=(nam-q*1000-b*100)/10;           /*求出十位*/
 g=nam-q*1000-b*100-s*10;          /*求出个位*/
 if (wei==4)                     /*根据输入的数字位数输出,第各位数字*/
     printf("你输入的数字是:%d%d%d%d\n",q,b,s,g);
 else if (wei==3)
     printf("你输入的数字是:%d%d%d\n",b,s,g);
 else if (wei==2)
     printf("你输入的数字是:%d%d%\n",s,g);
 else if (wei==1)
     printf("你输入的数字是:%d%\n",g);
 switch (wei)                        /*早知道上面的用switch就好了,按逆序打印各位数字*/
 {
  else 4: printf("%d,%d,%d,%d\n",g,s,b,q);break;
  else 3; printf("%d,%d,%d\n",g,s,b);break;
  else 2; printf("%d,%d\n",g,s);break;
  else 1; printf("%d\n",g);break;
 }
}
搜索更多相关主题的帖子: 编程 include 正整数 
2008-03-10 22:51
blueboy82006
Rank: 5Rank: 5
来 自:幻想世界
等 级:贵宾
威 望:16
帖 子:1227
专家分:57
注 册:2007-7-23
收藏
得分:0 
switch (wei)                        
{
  case 4: printf("%d,%d,%d,%d\n",g,s,b,q);break;//是case而不是else
  case 3: printf("%d,%d,%d\n",g,s,b);break;     //冒号,下同
  case 2: printf("%d,%d\n",g,s);break;
  case 1: printf("%d\n",g);break;
}
}

2008-03-10 23:00
bianfeng
Rank: 1
等 级:新手上路
帖 子:199
专家分:0
注 册:2007-11-28
收藏
得分:0 
谢谢了..对了..我太粗心了
2008-03-10 23:08
bianfeng
Rank: 1
等 级:新手上路
帖 子:199
专家分:0
注 册:2007-11-28
收藏
得分:0 
结果正确...程序好多要改
2008-03-10 23:10
blueboy82006
Rank: 5Rank: 5
来 自:幻想世界
等 级:贵宾
威 望:16
帖 子:1227
专家分:57
注 册:2007-7-23
收藏
得分:0 
#include <stdio.h>
void main()
{    int wei=0,num,t,i;
    int a[4];
    printf("请输入不多于四位的正整数:");
    scanf("%d",&num);
    while(num)
    {
        t=num;
        num/=10;
        a[wei]=t-num*10;
        wei++;
    }
    printf("%d\n",wei);
    for(i=0;i<wei;i++)
        printf("%d ",a[i]);
    printf("\n");
}
这样是不是会简单点呢...

2008-03-10 23:34
xianshizhe111
Rank: 1
等 级:新手上路
帖 子:1451
专家分:0
注 册:2007-12-8
收藏
得分:0 
/*这个方便点*/
#include "stdio.h"
#include<math.h>
int main(void)
{
    int num,k=10,i=0,temp,a[10];
    scanf("%d",&temp);
    while(temp!=0)
    {
        num=temp%k;
        temp=temp/k;
        i++;
        a[i]=num;
    }
    for(k=i;k>=1;k--)
       printf("%d\t%d\n",abs(k-i)+1,a[k]);
    return 0;
}
2008-03-10 23:47
bianfeng
Rank: 1
等 级:新手上路
帖 子:199
专家分:0
注 册:2007-11-28
收藏
得分:0 
不错你的程序我看懂了...
2008-03-10 23:55
xianshizhe111
Rank: 1
等 级:新手上路
帖 子:1451
专家分:0
注 册:2007-12-8
收藏
得分:0 
/*唉 看成了正序了*//*这行了*/
#include "stdio.h"
int main(void)
{
    int num,k=10,i=0,temp;
    scanf("%d",&temp);
    while(temp!=0)
    {
        num=temp%k;
        temp=temp/k;
        i++;
        printf("%d ",num);
    }
    printf("\n%d ",i);   
    return 0;
}
2008-03-10 23:59
mqh21364
Rank: 1
等 级:新手上路
帖 子:642
专家分:0
注 册:2008-2-28
收藏
得分:0 
楼上的方法不错!!!
2008-03-11 14:59
快速回复:编程题:我找了好久都没有找到错误请大家帮我找找
数据加载中...
 
   



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

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