标题:交流学习数据分离分析
取消只看楼主
c鳌白
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:24
专家分:101
注 册:2019-11-10
结帖率:75%
 问题点数:0 回复次数:1 
交流学习数据分离分析
这个代码看了三个小时才理解,要真正学会不知道还要多久啊?
欢迎各位大佬亲临来指导!

#include<stdio.h>
#include<stdlib.h>

int getwei(int num)//(2)(5)接收初始化数据和下面执行后的值,接收是接收值,再被返回值覆盖
{
    int wei = 0;
    for (int inum = num; inum; inum /= 10) //(3)计算位数,num赋值给了inum,num不变
    {
        wei++;
    }
    return wei;//(4)把结果wei的值返回给(int num)再次调用getwei()就是返回的数据
}

int get10(int n) //(14)(18)最后循环计算用的
{
    int res = 1;
    for (int i = 0; i < n; i++)//(15)从0到n进行循环
    {
        res*= 10;  //(16)不断相乘

    }
    return res; //(17)返回值给赋予(int n)
}

int main()
{
    int num;
    scanf("%d",&num);
    //初始化num值
    printf("\n你输入的数是%d",num);//(1)num的值被赋予给了getwei(),并跳转到
    int wei = getwei(num); //(6)调用getwei()赋值给wei
   
    int lastres = 0;//(7)设定值保存最终结果

    int inum=num; //(8)inum这时候等于初始化num的值,num值不变

    for (int i = 0; i < wei; i++)
    //(9)计算出的位(wei)有几次,下面就执行几次。依次取出了初始化输入的每一位数
    {
        int shu; //(10)用shu取出位数
        shu = inum % 10; //(11)这里等于取出了初始化num的最后一位,比如123取出最后一位3,就等于120
        inum/=10; //(12)这里等于上面取出最后一位数的值在除以10
        
        lastres += shu*get10(wei-1-i);
        //(13)第一步括号内(wei)位数减1减每次循环i加1的值进行get10函数内运算
        //(19)第二步用循环取出的值去乘以第一步循环计算的值,在通过赋值的运算得到结果


    }
    printf("\n结果等于%d", lastres);//(20)计算的结果等于输入数据的相反数
    system("pause");

}
搜索更多相关主题的帖子: num 数据 等于 int 取出 
2019-11-12 22:05
c鳌白
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:24
专家分:101
注 册:2019-11-10
得分:0 
回复 2楼 rjsp
我怎么没想到呢
2019-11-13 19:09



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




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

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