第 3章上机实践中“实验后的练习”中程序允许用户在键盘依次输入若干个数字(每输入一个数字都需要按回车键确认),程序将计算出这些数的和以及平均值。请在这个例子中增加断言语句,当用户输入的数字大于 100或小于 0时,程序立刻终止执行,并提示这是一个非法的成绩数据。输出样例: 3个数的和为 21.000000 3个数的平均值是 7.000000
时间: 2024-01-22 16:18:53 浏览: 46
以下为修改后的程序代码:
```python
#include <stdio.h>
#include <assert.h>
int main()
{
int n, i;
float num, sum = 0.0, average;
printf("请输入数字的个数:");
scanf("%d", &n);
assert(n > 0 && n <= 100);
for(i=1; i<=n; ++i)
{
printf("请输入第%d个数字:", i);
scanf("%f", &num);
assert(num >= 0 && num <= 100);
sum += num;
}
average = sum / n;
printf("这%d个数的和为 %.6f\n", n, sum);
printf("这%d个数的平均值是 %.6f\n", n, average);
return 0;
}
```
在原有代码的基础上,我们增加了两个 assert 语句。第一个 assert 语句用于检查用户输入的数字个数是否合法,即必须大于 0 且小于等于 100。第二个 assert 语句则用于检查用户输入的每个数字是否合法,即必须大于等于 0 且小于等于 100。
如果用户输入的数字不满足上述条件,程序就会立刻终止执行,并输出错误提示信息。这样可以有效避免程序出现不合法的计算结果。
相关问题
编写一个猜测数字的java程序_第二周JAVA上机实验(三)猜数游戏
好的,下面是一个简单的猜数字 Java 程序:
```java
import java.util.Scanner;
public class GuessNumberGame {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int answer = (int) (Math.random() * 100) + 1; // 生成随机数
int guess = 0;
int count = 0;
System.out.println("猜猜我的数字是多少(1-100):");
while (guess != answer) {
guess = input.nextInt();
count++;
if (guess < answer) {
System.out.println("猜小了,再试一次:");
} else if (guess > answer) {
System.out.println("猜大了,再试一次:");
} else {
System.out.println("恭喜你,猜对了!你一共猜了 " + count + " 次。");
}
}
}
}
```
程序会随机生成一个 1 到 100 之间的整数,然后让用户输入猜测的数字,直到猜对为止。如果猜小了,程序会提示用户再试一次;如果猜大了,程序也会提示用户再试一次。如果猜对了,程序会输出猜测的次数。
注意:为了使用 Scanner 类读取用户输入,需要在程序开头引入 `java.util.Scanner` 包。
Python程序设计与算法基础教程第十一章上机实践
Python程序设计与算法基础教程第十一章主要介绍了面向对象编程的相关内容,包括类、对象、继承、多态等。上机实践部分的主要内容是通过实现一个简单的银行账户管理系统来巩固和应用所学的面向对象编程知识。下面是实验的具体步骤和内容:
1. 定义一个银行账户类(Account),包括账号(account)、姓名(name)、余额(balance)和利率(rate)等属性,以及查询余额(inquiry)、存款(deposit)、取款(withdraw)和计算利息(get_interest)等方法。
2. 定义一个支持定期存款的银行账户类(SavingAccount),继承自银行账户类,添加定期存款期限(term)属性和计算定期利息(get_interest)方法。
3. 定义一个支持信用额度的银行账户类(CreditAccount),继承自银行账户类,添加信用额度(credit)和计算透支利息(get_overdraft_interest)方法。
4. 编写一个测试程序,创建多个银行账户对象,并进行存款、取款、查询余额等操作,最后输出各个账户的信息以及计算得到的利息。