定义一个整型变量,初始值为142857,把这个数字分解成两组数字142,857 计算这两个数和的结果;再把142857分解成三组数字,14,28,57再输出三组数字之和?

#include<stdio.h>

int main()
{

int a=142857,b,c,d,e,f,g,h;


printf("将初始值分解成两组数:");
scanf("%d%d",&b,&c);
d=b+c;
printf("这两组数的和是:%d",d);
printf("将初始值分解成三组数:%d%d%d",e,f,g);
h=e+f+g;
printf("这三组数的和是:%d",h);
return 0;

}

#include <stdio.h>

int main()
{
    int n = 142857;
    int a = n / 1000;
    int b = n % 1000;
    int c = n / 10000;
    int d = n / 100 % 100;
    int e = n % 100;
    printf("%d,%d,%d,%d,%d\n", a, b, c, d, e);
    printf("%d\n", a + b);
    printf("%d\n", c + d + e);
    return 0;
}

img

你这样写?是手动分成2个数或者3个数??你用了scanf()

你这样定义的b,c,d,e,f,g,h都是没有初始化的随机值
scanf("%d%d",&b,&c);
d=b+c; 对于这两句 ,① & 是取地址符,表示我们输入两个值赋值给b和c;② d = b + c 只会将随机值赋值给d,要明白,要让计算机帮我们进行运算,首先要给它精确的表达式,您所给的代码含义是自己输入几个数分别求和,并不能起到划分数字的作用。

想要划分数字,需要对 a 进行操作,142857 ,142,857,易得这分别是对 a / 1000 的结果和对 a % 1000 的结果(不清楚的话可以去查一下,然后划分数字),142857 划分为三个数字也是同理可得。
希望对你有所帮助。