完整题目是:
在函数Func中实现功能:计算3位数n的各位之和,并返回结果
这个代码应该怎么写呢?
int Func(int n) {
int sum = 0;
while (n > 0) {
sum += n % 10; // 求取 n 的个位上的数字,累加到 sum 变量中
n /= 10; // 将 n 的个位数去掉,继续处理下一位
}
return sum;
}
该函数接收一个整数 n,通过循环不断提取 n 的个位上的数字并将其累加到变量 sum 中,最终返回 sum 即为 n 的各位数字之和。
例如,当 n=123 时,首先取出 n 的个位上的数字 3 并将其加入到 sum 中,此时 sum=3;然后将 n 的个位去掉,变成 12,再次重复上述操作,依次求得十位上的数字 2 和百位上的数字 1,最终得到 sum=1+2+3=6。
如果对你有所帮助的话,请给我一个采纳,谢谢拉
当 两个线程(任务)都调用 func1() 时,打印的结果如下所示,task1、task2 得到的结果 sum 都是正确的。特别地,在 task1、task2 中 函数 func1()内的变量 add1、add2、sum 的地址都是不同的。这意味着,在 task1 中的 func1() 使用的是 task1 对应的内存空间,在 task2 中的 func1() 使用的是 task2 对应的内存空间。
Hello world!
TASK2 func1: : add1 addr=0x3ffb7cb0, add2 addr=0x3ffb7cb4, sum addr=0x3ffb7cb8 sum1=3
TASK1 func1: : add1 addr=0x3ffb74b0, add2 addr=0x3ffb74b4, sum addr=0x3ffb74b8 sum1=3
TASK2 func1: : add1 addr=0x3ffb7cb0, add2 addr=0x3ffb7cb4, sum addr=0x3ffb7cb8 sum1=3
TASK1 func1: : add1 addr=0x3ffb74b0, add2 addr=0x3ffb74b4, sum addr=0x3ffb74b8 sum1=3
我们可以得到这样的结论: 两个 task(也可称为两个模块、线程)虽然调用的是同一个函数,但函数内的变量使用的是相对独立的地址来存储数据,因此数据之间互不干扰。