键盘输入若干整数(遇负数结束),要求将其中的偶数输出(每行3个偶数)并输出偶数的平均值(小数点后面保留2位)。 要求1:分别用for循环和while循环实现。
时间: 2023-09-23 17:06:42 浏览: 99
从键盘任意输入两个整数,输出两数之间的素数,素数判断用函数实现。 扩展要求:1)程序可以循环执行,判断完一组可以再进行下一组;可以设定一个特殊键退出
5星 · 资源好评率100%
### 回答1:
(1)for循环实现:
```
#include <stdio.h>
int main()
{
int num, sum = 0, count = 0;
printf("请输入若干个整数(以负数结束):\n");
for(;;)
{
scanf("%d", &num);
if(num < 0)
break;
if(num % 2 == 0)
{
printf("%d\t", num);
count++;
sum += num;
if(count % 3 == 0)
printf("\n");
}
}
printf("\n平均值为:%.2f\n", (float)sum/count);
return 0;
}
```
(2)while循环实现:
```
#include <stdio.h>
int main()
{
int num, sum = 0, count = 0;
printf("请输入若干个整数(以负数结束):\n");
scanf("%d", &num);
while(num >= 0)
{
if(num % 2 == 0)
{
printf("%d\t", num);
count++;
sum += num;
if(count % 3 == 0)
printf("\n");
}
scanf("%d", &num);
}
printf("\n平均值为:%.2f\n", (float)sum/count);
return 0;
}
```
### 回答2:
使用for循环实现:
def even_numbers_for():
numbers = []
while True:
num = int(input("请输入整数:"))
if num < 0:
break
else:
numbers.append(num)
evens = [n for n in numbers if n % 2 == 0]
print("偶数为:")
count = 0
sum = 0
for i in range(len(evens)):
if count % 3 == 0:
print()
print(evens[i], end=" ")
count += 1
sum += evens[i]
average = round(sum / len(evens), 2)
print("\n偶数的平均值为:", average)
使用while循环实现:
def even_numbers_while():
numbers = []
num = int(input("请输入整数:"))
while num >= 0:
numbers.append(num)
num = int(input("请输入整数:"))
evens = [n for n in numbers if n % 2 == 0]
print("偶数为:")
count = 0
sum = 0
i = 0
while i < len(evens):
if count % 3 == 0:
print()
print(evens[i], end=" ")
count += 1
sum += evens[i]
i += 1
average = round(sum / len(evens), 2)
print("\n偶数的平均值为:", average)
以上两段代码分别用for循环和while循环实现了从键盘输入若干整数,遇到负数结束,并将其中的偶数输出,每行输出3个偶数,并输出偶数的平均值,保留2位小数。
### 回答3:
使用for循环实现:
```python
numbers = []
sum_even = 0
count = 0
print("请逐个输入整数(遇负数结束):")
for i in range(100): # 限定输入数量最多为100个
num = int(input())
if num < 0:
break
numbers.append(num)
if num % 2 == 0:
sum_even += num
count += 1
print("输出的偶数为:")
for i, num in enumerate(numbers):
if num % 2 == 0:
print(num, end=" ")
if (i + 1) % 3 == 0:
print()
average = round(sum_even / count, 2) if count > 0 else 0
print("偶数的平均值为:", average)
```
使用while循环实现:
```python
numbers = []
sum_even = 0
count = 0
print("请逐个输入整数(遇负数结束):")
num = int(input())
while num >= 0:
numbers.append(num)
if num % 2 == 0:
sum_even += num
count += 1
num = int(input())
print("输出的偶数为:")
for i, num in enumerate(numbers):
if num % 2 == 0:
print(num, end=" ")
if (i + 1) % 3 == 0:
print()
average = round(sum_even / count, 2) if count > 0 else 0
print("偶数的平均值为:", average)
```
以上两种实现方式都能满足题目的要求,其中运用了列表保存输入的所有整数,并通过判断是否为偶数来完成对偶数的处理。最后对偶数进行输出,并计算输出的偶数的平均值并保留两位小数输出。
阅读全文