标题:输入一个四位数,输出每一位数
只看楼主
mjuhyl
Rank: 1
等 级:新手上路
帖 子:17
专家分:4
注 册:2013-11-14
结帖率:33.33%
已结贴  问题点数:20 回复次数:15 
输入一个四位数,输出每一位数
#include<stdio.h>
#include<math.h>
int main(void)
{
    int num,newnum,i;
    int digit[4];
    printf("Enter a num:");
    scanf("%d",&num);

    for(i=1;i<=4;i++)
        digit[i]=num/pow(10,4-i);
        num=num%pow(10,4-i);

        printf("%d",digit[i]);

        return 0;
}

 warning C4244: '=' : conversion from 'double' to 'int', possible loss of data
C:\Documents and Settings\Administrator\桌面\jvb.cpp(12) : error C2297: '%' : illegal, right operand has type 'double'
执行 cl.exe 时出错.

jvb.obj - 1 error(s), 0 warning(s)
        求大神指教
搜索更多相关主题的帖子: conversion Documents possible include warning 
2013-12-24 19:59
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:2 
第12行,自己不會看嗎?

授人以渔,不授人以鱼。
2013-12-24 20:01
xiaozi2013
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:四川成都
等 级:蒙面侠
威 望:6
帖 子:830
专家分:4331
注 册:2013-12-13
得分:2 
for结构

--整天敲那些破代码能找着媳妇儿吗。。。---
2013-12-24 20:03
mjuhyl
Rank: 1
等 级:新手上路
帖 子:17
专家分:4
注 册:2013-11-14
得分:0 
求回复
2013-12-24 20:20
mjuhyl
Rank: 1
等 级:新手上路
帖 子:17
专家分:4
注 册:2013-11-14
得分:0 
具体
2013-12-24 20:23
编程了啊
Rank: 2
等 级:论坛游民
威 望:1
帖 子:31
专家分:20
注 册:2013-12-19
得分:2 
回复 楼主 mjuhyl
用这个就可以了:
#include<stdio.h>
int main()
{
    int i,a,b,c,d,num;
    printf("Enter a num:");
    scanf("%d",&num);
    a=num/1000;
    b=(num/100)-a*10;
    c=(num/10)-a*100-b*10;
    d=num-a*1000-b*100-c*10;
    printf("%d,%d,%d,%d\n",a,b,c,d);

        return 0;
}
2013-12-24 22:13
xiaozi2013
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:四川成都
等 级:蒙面侠
威 望:6
帖 子:830
专家分:4331
注 册:2013-12-13
得分:0 
回复 楼主 mjuhyl
有点多的错误。。。。。。。。。。。。。
-------检查----------

--整天敲那些破代码能找着媳妇儿吗。。。---
2013-12-24 22:19
lipoet
Rank: 1
等 级:新手上路
帖 子:1
专家分:2
注 册:2013-12-24
得分:2 
你第12行那里编程规则不允许,求余(%)右边的操作数只能是整型的,你用的pow()函数在VC6.0中是double型的,
2013-12-24 22:42
pangshch
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:2
帖 子:443
专家分:1966
注 册:2013-4-9
得分:2 
有两点, 第一, 如上所说, 对double型数据使用%
        第二, for循环后面的三条语句是一起的, 没有加大括号.
程序代码:
#include<stdio.h>
#include<math.h>
int main(void)
{
    int num,newnum,i;
    int digit[4];
    printf("Enter a num:");
    scanf("%d",&num);

    for(i=1;i<=4;i++) {   // 加大括号
        digit[i]=num/(int)pow(10,4-i);    // 加强制类型转换
        num=num%(int)pow(10,4-i);

        printf("%d",digit[i]);
    }

        return 0;
}

数组digit[]改成变量就可以了..   
最好的就是用递归.
2013-12-25 09:10
so_love
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:7
帖 子:812
专家分:4151
注 册:2013-11-25
得分:2 
这。。。。这,,,都告诉是哪行了

一花一世界、一叶一追寻、片片花叶落、情系何人身。
2013-12-25 09:35



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




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

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