4. 设计程序,功能为:从键盘输入一组整数,以-1结束输入,统计: 1)输入的正整数的个数 2)分别计算输入数据中的偶数的和,奇数的和。使用C语言。
时间: 2024-11-22 17:47:20 浏览: 34
在C语言中,你可以创建一个简单的循环结构来实现这个功能。下面是一个示例程序:
```c
#include <stdio.h>
int main() {
int num, sum_even = 0, sum_odd = 0, count_positive = 0;
printf("请输入一组整数 (-1 结束): ");
while (scanf("%d", &num) == 1 && num != -1) { // 循环直到遇到 -1 或非数字输入
count_positive++;
if (num > 0) { // 判断是否为正整数
sum_even += num % 2 == 0 ? num : 0; // 如果是偶数则累加
sum_odd += num % 2 != 0 ? num : 0; // 如果是奇数则累加
}
}
printf("\n输入的正整数个数: %d\n", count_positive);
printf("输入数据中的偶数和: %d\n", sum_even);
printf("输入数据中的奇数和: %d\n", sum_odd);
return 0;
}
相关问题
设计程序,功能为:从键盘输入一组整数, 以-1结束输入,统计: 1)输入的正整数的个数 2)分别计算输入数据中的偶数的和,奇数的和。
设计这样一个程序,你需要按照以下步骤来进行:
1. 首先,创建一个主函数,作为程序的入口点。
2. 使用`while`循环读取用户的输入,直到用户输入-1为止。这可以使用`input()`函数获取用户的输入,并将其转换成整数,例如通过`int(input())`。
3. 对于每一次输入,检查它是否为正整数(大于0)。如果是,就增加正整数计数器,并将这个数累加到相应的总和(偶数或奇数,根据其除以2的余数决定)。
4. 当遇到-1时,跳出循环。此时,你应该已经有了所有输入的统计信息:正整数的数量以及偶数和奇数的和。
5. 最后,在循环之外打印出结果:正整数的数量、偶数的和以及奇数的和。
以下是伪代码示例:
```python
count_positive = 0
sum_even = 0
sum_odd = 0
while True:
user_input = int(input("请输入一个整数(输入-1结束):"))
if user_input == -1:
break
elif user_input > 0:
count_positive += 1
# 判断奇偶性并累加和
if user_input % 2 == 0:
sum_even += user_input
else:
sum_odd += user_input
print(f"正整数的个数:{count_positive}")
print(f"偶数的和:{sum_even}")
print(f"奇数的和:{sum_odd}")
```
从键盘输入一个包含一组正整数的列表。函数proc()的功能是:从列表中找出能构成三角形的三个整数的组合并将这三个数保存成一个三元组,结果保存到myf1.out文件中。 提示:判断能构成三角形的三条边长a,b,c时,如果a≤b≤c,只要满足a+b>c即可。 【测试数据与运行结果】 Please input the numbers: [1,2,3,4,5] 文件中的结果为: [(2, 3, 4), (2, 4, 5), (3, 4, 5)] 【待完善的源程序】 def proc(xx): yy = [] __________ for i in range(len(xx)): for j in range(i+1, len(xx)): for k in range(j+1, len(xx)): if xx[i]+xx[j] > xx[k]: yy.append((xx[i], xx[j], xx[k])) return yy if __name__ == "__main__": xx = eval(input("Please input the numbers: ")) with open("T:\\myf1.out", "w") __________ fp: fp.writelines(repr(proc(xx)))
第一个空需要填写 `for i in range(len(xx)-2):`,即 `for i in range(len(xx)-2):\n for j in range(i+1, len(xx)-1):\n for k in range(j+1, len(xx)):`。第二个空需要填写 `as`,即 `with open("T:\\myf1.out", "w") as fp:`。完整的程序如下:
```python
def proc(xx):
yy = []
for i in range(len(xx)-2):
for j in range(i+1, len(xx)-1):
for k in range(j+1, len(xx)):
if xx[i]+xx[j] > xx[k]:
yy.append((xx[i], xx[j], xx[k]))
return yy
if __name__ == "__main__":
xx = eval(input("Please input the numbers: "))
with open("T:\\myf1.out", "w") as fp:
fp.writelines(repr(proc(xx)))
```
阅读全文