编写一个函数sum(,将输入的整形参数i ( i>0 )的各位求和,返回求和结果。在main)函数中测试此函数,从键盘输入整数n (n∈[1,20]), 然后再输入n个非负整数,对于每一个非负整数调用sum函数求各位数和,将结果输出到屏幕。 [输入形式] 从键盘输入一一个正整数n,然后再输入n个非负整数。 [输出形式] 在屏幕上分别输出n个非负整数的各位之和,并用一个空格隔开各个整数的和。[输入样例]
时间: 2024-02-11 14:06:48 浏览: 138
这是一个完整的C++程序,包括sum函数和main函数,可以满足你的需求:
```c++
#include<iostream>
using namespace std;
int sum(int i){ //定义sum函数
int s = 0;
while(i){
s += i % 10;
i /= 10;
}
return s;
}
int main(){
int n;
cin >> n;
for(int i = 1; i <= n; i++){
int num;
cin >> num;
cout << sum(num) << " ";
}
return 0;
}
```
注意:本程序只能处理非负整数,不能处理负数。
相关问题
编写一个函数sum(i)将输入的整型参数i(i >=0)的各位求和,返回求和结果,在main函数中测试此函数,从键盘输入整数n(1 <=n <=20)然后再输入n个非负整数,对于每个非负整数调用sum函数求各位数和,分别输出N个非负整数的各位之和,并用一个空格隔开各个整数的和
这是一个简单的编程任务,通常在学习基础的控制结构和函数时会被提到。下面是一个使用Python编写的示例,它实现了`sum_digits`函数用于计算单个数字的各位之和,然后在`main`函数中读取用户输入并调用该函数:
```python
def sum_digits(i):
"""
计算整数i的各位数之和
"""
return sum(int(digit) for digit in str(abs(i)))
def main():
n = int(input("请输入一个整数n (1 <= n <= 20): "))
if not(1 <= n <= 20):
print("无效的输入范围,请重新输入.")
return
result_list = []
for _ in range(n):
num = int(input(f"请输入第{n}个非负整数: "))
if num >= 0:
result_list.append(sum_digits(num))
else:
print("输入的数值必须是非负的.")
break
# 输出结果,用空格隔开
if result_list:
result_string = ' '.join(map(str, result_list))
print(f"各位数之和为: {result_string}")
if __name__ == "__main__":
main()
```
编写一个函数sum(i),将输入的整形参数i(i≥0)的各位求和,返回求和结果。在main()函数中测试此函数,从键盘输入整数n(n∈[1,20]),然后再输入n个非负整数,对于每一个非负整数调用sum函数求各位数和,将结果输出到屏幕。
### 回答1:
编写一个函数sum(i),将输入的整形参数i(i≥0)的各位求和,返回求和结果。在main()函数中测试此函数,从键盘输入整数n(n∈[1,20]),然后再输入n个非负整数,对于每一个非负整数调用sum函数求各位和,将结果输出到屏幕。
### 回答2:
在使用C++编程时,实现一个可以计算整数各位数和的函数sum(i)是非常简单的。我们可以使用循环和取模的方式来实现该函数。具体实现如下。
int sum(int i)
{
int sum = 0; // sum用于存储各位数的和
while (i > 0)
{
sum += i % 10;
i /= 10;
}
return sum;
}
在上述代码中,使用while循环计算了整数i的各个位数之和,循环体内部的语句都是很简单的,就是计算i的末位数字并将其累加到sum变量中,然后将i除以10,使得它的末位数字被去掉。最后,返回sum就完成了计算。
为了测试这个函数,我们还需要编写一个main()函数,用于从键盘中读取输入,并对输入的整数进行求和操作。该main()函数实现如下。
int main()
{
int n; // n用于存储需要计算各位数的整数的数量
cin >> n;
while (n-- > 0)
{
int i; // i用于存储需要计算各位数的整数
cin >> i;
cout << sum(i) << endl; // 输出计算结果
}
return 0;
}
在上述代码中,首先从键盘中读取整数n,表示需要计算各位数的整数的数量。接下来,在while循环中,读取每一个需要计算各位数的整数i,并将其传递给sum函数进行计算,然后将计算结果输出到屏幕上。最后,整个程序结束,main函数返回0。
通过以上程序,我们就可以轻松地实现一个可以计算整数各位数和的函数,并且可以测试该函数的功能。
### 回答3:
编写一个函数 sum(i),实现将输入的整形参数i(i≥0)各位数字的求和,返回求和的结果。在 main() 函数中测试此函数,从键盘输入整数 n( n ∈[1,20] ),然后再输入 n 个非负整数,对于每一个非负整数调用 sum 函数求各位数和,将结果输出到屏幕。
1.函数的实现
sum 函数的实现如下:
```
int sum(int i)
{
int digitsum = 0; // 初始化各位数字的和为0
while(i > 0)
{
digitsum += i % 10; // 取每一位数字,并累加到digitsum中
i /= 10;
}
return digitsum; // 返回各位数字的和
}
```
2.main 函数的实现
在 main 函数中,先从键盘输入整数 n,并用一个循环来读取 n 个非负整数。对于每一个非负整数,调用 sum 函数求它的各位数和,并将结果输出到屏幕上。
```
int main()
{
int n;
cout << "请输入整数个数n(n∈[1,20]):";
cin >> n;
if(n < 1 || n > 20)
{
cout << "输入的n超出范围!" << endl;
return 0;
}
cout << "请输入" << n << "个非负整数:";
int a;
for(int i = 0; i < n; i++)
{
cin >> a;
if(a < 0)
{
cout << "输入的整数必须非负!" << endl;
return 0;
}
int digitsum = sum(a);
cout << a << "的各位数字之和为:" << digitsum << endl;
}
return 0;
}
```
3.完整代码如下
```
#include <iostream>
using namespace std;
int sum(int i)
{
int digitsum = 0; // 初始化各位数字的和为0
while(i > 0)
{
digitsum += i % 10; // 取每一位数字,并累加到digitsum中
i /= 10;
}
return digitsum; // 返回各位数字的和
}
int main()
{
int n;
cout << "请输入整数个数n(n∈[1,20]):";
cin >> n;
if(n < 1 || n > 20)
{
cout << "输入的n超出范围!" << endl;
return 0;
}
cout << "请输入" << n << "个非负整数:";
int a;
for(int i = 0; i < n; i++)
{
cin >> a;
if(a < 0)
{
cout << "输入的整数必须非负!" << endl;
return 0;
}
int digitsum = sum(a);
cout << a << "的各位数字之和为:" << digitsum << endl;
}
return 0;
}
```
阅读全文