| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1964 人关注过本帖
标题:输入一个数得出长整型的数,再求它有多少位数,我觉得我编的也符合逻辑。为 ...
只看楼主 加入收藏
Moon沐木木
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2015-3-29
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:8 
输入一个数得出长整型的数,再求它有多少位数,我觉得我编的也符合逻辑。为什么输不出结果呢?新手上路,求大神指点、
#include<stdio.h>
#include<math.h>
void main()
{
    int x,a=0;
    long double i,s;
    s=1;
    i=2;
    scanf("%d",&x);
    for(i=2;i<=x;i++)
    {    s=i*s;
    printf("%ld\n",s);
    {                  
        s=s/10;   
        a++;   
}while(x>0);     
    printf("%d\n",a);
    }
}
搜索更多相关主题的帖子: 新手上路 include double 
2015-03-29 14:01
执笔画江山
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:3
帖 子:265
专家分:1010
注 册:2015-1-13
收藏
得分:5 
你的这个while循环是什么东东?四不像!!!另外类型匹配也不对。
前几天有人问过这个问题。用计数法简单就得到了。有个代码,拿过来你自己看看吧。这里你把int改为你的long就行了。另外打印的时候注意类型匹配。
程序代码:
#include<stdio.h>
int fun(int n) {
    int v = 1;
    if(n < 0) n *= -1; //将负数转换为正数

    while(n >= 10)
    {
        n /= 10;
        v++;
    }
    return v;
}
int main(void)
{
    int n;
    scanf("%d", &n);
    printf("%d\n", fun(n));
    return0;
}

 

[ 本帖最后由 执笔画江山 于 2015-3-29 16:06 编辑 ]

授人以鱼,不如授人以渔
2015-03-29 16:05
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
收藏
得分:5 
你的代码没法改啊,“while(x>0);”死循环了。你的代码按标准缩进后如下(我尽量指出你的错误):
#include<stdio.h>
#include<math.h>  //你没有使用数学函数,可不需要这个库
void main()
{
    int x,a=0;
    long double i,s;
    s=1;
    i=2;
    scanf("%d",&x);
    for(i=2;i<=x;i++)
    {
        s=i*s;
        printf("%ld\n",s);  //你将s定义成long double,用%ld格式只能显示为0
        {//这一对花括号莫名其妙
            s=s/10;
            a++;
        }
        while(x>0);  //x恒大于0,程序执行到这里就转不出去了。
        printf("%d\n",a); //基于上一句的问题,这一句无法执行
    }
}

能编个毛线衣吗?
2015-03-29 21:05
执笔画江山
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:3
帖 子:265
专家分:1010
注 册:2015-1-13
收藏
得分:0 
回复 3楼 wmf2014
他明显是想写个do...while循环。只是写的四不像

授人以鱼,不如授人以渔
2015-03-29 21:36
Moon沐木木
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2015-3-29
收藏
得分:0 
回复 3楼 wmf2014
非常感谢你对我的指点帮助,让我学到了更多的知识。我相信每一个错误代表每一个进步。继续加油,谢谢!
2015-03-29 21:43
Moon沐木木
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2015-3-29
收藏
得分:0 
回复 4楼 执笔画江山
我想把九九乘法表像文具盒里面那样子输出来。可是为什么达不到预期的效果呢?求指点、
#include<stdio.h>
void main()
{
    int k,i;
    for(k=1;k<=9;k++)
    {
    for(i=1;i<=9;i++)
   
    printf("%d*%d=%d   ",k,i,i*k);
    if(k/i==1)
     printf("\n");
}
}
2015-03-31 09:23
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:5 
以下是引用Moon沐木木在2015-3-31 09:23:42的发言:

我想把九九乘法表像文具盒里面那样子输出来。可是为什么达不到预期的效果呢?求指点、
#include<stdio.h>
void main()
{
    int k,i;
    for(k=1;k<=9;k++)
    {
    for(i=1;i<=9;i++)
   
    printf("%d*%d=%d   ",k,i,i*k);
    if(k/i==1)
     printf("\n");
}
}


你这个代码是大九九法决   你想要的是小九九的代码打印   试试以下代码

#include<stdio.h>

void main()
{
    int k,i;
    for(k=1;k<=9;k++)
    {
        for(i=1;i<=9 && i<=k;i++)
        {

            printf("%2d*%2d=%2d",k,i,i*k);
        }
        printf("\n");
    }
}

DO IT YOURSELF !
2015-03-31 09:33
Moon沐木木
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2015-3-29
收藏
得分:0 
回复 7楼 wp231957
简单快捷,果断好评。谢谢、
2015-03-31 14:29
longwu9t
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:732
专家分:2468
注 册:2014-10-9
收藏
得分:5 
程序代码:
#include<stdio.h>

int main(void) {
    for(int i = 1; i <= 9; i++) 
        for(int j = 1; j <= i; j++)
            printf("%d*%d=%-2d%c", i, j, i * j, i == j ? '\n' : '\t');

    return 0;
}

Only the Code Tells the Truth             K.I.S.S
2015-03-31 14:50
快速回复:输入一个数得出长整型的数,再求它有多少位数,我觉得我编的也符合逻辑 ...
数据加载中...
 
   



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

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