C:输入一个n位数,范围在1-99999999,求这个n位数每一位上的数之和。例如,输入12,输出3;输入234510,输出15

题目:

输入一个n位数,范围在1-99999999,求这个n位数每一位上的数之和。例如,输入12,输出3;输入234510,输出15

代码:(这个方法确实是比较笨拙)

有好的方法,建议大家留言,我们一起交流探讨

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

int main() {
	int a, b, c,d,e,f,g,h, x,sum;
	printf("请输入一个1-99999999之间的数:\n");
	scanf("%d", &x);
	a = x / 10000000 % 10;
	b = x / 1000000 % 10;
	c = x / 100000 % 10;
	d = x / 10000 % 10;
	e = x / 1000 % 10;
	f = x / 100 % 10;
	g = x / 10 % 10;
	h = x / 1 % 10;

	sum = a + b + c + d + e + f + g + h;
	printf("%d",sum);
	
	system("pause");
	return 0;
	}

改进代码:

#include <stdio.h>
int main() {
	int n, x, sum = 0;
	printf("请输入一个n位数(1~99999999)\n:");
	scanf("%d", &x);
	if (x < 1 || x > 99999999) {
		printf("输入的数不在1~99999999范围内\n");
		return 0;
	}
	n = 0; // 统计数字位数
	while (x > 0) {
		sum += x % 10; // 累加最低位数字
		x /= 10; // 去掉最低位数字
		n++; // 统计数字位数
	}
	printf("%d\n", sum);
	system("pause");
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值