c语言关于“输入3个数并计算他们的平均值“题目优化笔记

原题

分析:

(1) 输入3个整数存入变量num1num2num3

(2) 3个整数的平均值,赋给变量average

(3) 输出average

初级版本:

void main()
{  int num1,num2,num3;
   float average;
   printf(″Please input three numbers:″);   
   scanf(″%d,%d,%d″,&num1,&num2,&num3);
   average = (num1+num2+num3)/3.0; 
   printf(″average=%7.2f\n″,average);
} 

现在需要对代码进行验证操作,如:

  1. 判断输入是否完整,如果输入数数量少于要求数量,则提示用户重新输入并重复之前的输入步骤。
  2. 询问用户是否持续的输入并且窗口不会关闭。
  3. 未输入状态时按回车可以停留界面。

优化后的代码:

#include <stdio.h>

int main() {
	int num1, num2, num3;
	float average;
	int success = 0; // 输入是否成功的标志
	char choice;     // 声明一个字符型变量

	do {
		// 输入三个整数
		printf("请输入三个整数:\n");
		if (scanf("%d%d%d", &num1, &num2, &num3) != 3) {
			printf("输入错误,请重新输入三个整数!\n");
			// 清空输入缓冲区
			while (getchar() != '\n');
			continue; // 继续循环
			}

		// 标记输入成功
		success = 1;

		// 计算平均值
		average = (float)(num1 + num2 + num3) / 3;

		// 输出平均值
		printf("三个数的平均值为:%.2f\n", average);

		// 询问是否继续输入
		while (1) {
			printf("是否继续输入?(Y/N)");
			choice = getchar();
			// 清空输入缓冲区
			while (getchar() != '\n');
			if (choice == 'Y' || choice == 'y' || choice == 'N' || choice == 'n') {
				break; // 输入合法,跳出循环
				}
			printf("输入错误,请重新输入!\n");
			}
		} while (choice != 'N' && choice != 'n');

	return 0;
	}

需要注意的是:

  1. 及时清空getchar缓冲区的回车,确保输入后的判断不会出现问题。
  2. 计算平均值可以在前面加上类型转换,或者在后面用3.0代替。
  3. 字符型变量choice记得提前声明。
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值