2023.6.20-【personal training】:键盘输入整数,求其和与平均数。并对每一次键入都实现自主控制。

news/2024/11/24 13:27:15/

    代码:

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
int a = 0;
int sum = 0;
double ave = 0;
double sum2 = 0;
int qua = 0;
int tri ;
printf("请输入一个整数:");
tri = scanf_s("%d", &a);
while (tri ==1)
{sum = sum + a;qua = qua + 1;sum2 = (double)sum;ave = sum2 / qua;printf("已输入的所有整数之和=%d\n", sum);printf("已输入的所有整数的平均值=%5.2f\n", ave);printf("您是否想继续下去?是请继续输入其他整数,否请输入f。\n");printf("请输入一个整数:");tri = scanf_s("%d", &a);
}return 0;
}

运行结果:

 用户每键入一个整数都会输出一次求和和平均值,并且本次输入的内容,会为下一次循环是否开启提供触发。

逻辑框图:

这里可能犯一个经典错误,请看以下代码:

int a = 0;int sum = 0;double ave = 0;int qua = 0;int tri = 1;while(tri!=0){printf("请输入一个整数:");tri=scanf_s("%d", &a);sum = sum + a;qua = qua + 1;ave = sum / qua;printf("已输入的所有整数之和=%d\n", sum);printf("已输入的所有整数的平均值=%5.2f\n", ave);printf("您是否想继续下去?是请继续输入其他整数,否请输入0。\n");

代码原本希望实现:键入其他整数,都可以完成计算,键入0即停止循环。但是犯了错。


 错误一:while(tri!=0)的含义是,只要触发值非0那么这个循环就可以继续下去。原始的触发int tri = 1,触发开始。但是循环体内    tri=scanf_s("%d", &a);这行代码使得即使键入0,循环也会继续。因为只要键入成功,scanf()的返回值永远是1,即tri==1恒成立。只有键入非十进制整数时,返回值才是0。

错误二:这样写,平均值的小数部分被完全忽略了。

错误三:如果我第一次输入整数10,第二次输入11,那么原本我应该得到的是和为21,平均值为10.50.但是运行之后发现,11被多加了一次才停止。如下图所示。

 这是由于:tri=scanf_s("%d", &a);代码执行的太超前了。虽然已经键入了f,下一次循环被中止了,但是tri=scanf_s("%d", &a);语句后面还有

       sum = sum + a;qua = qua + 1;ave = sum / qua;

这样的加和动作,键入f未能成功放进a地址,于是a地址内存的还是上一次键入的11,于是sum=sum+11又被多执行了一次。

循环体内如果要赋值下一轮循环的触发,必须要放在循环体的最后一句。防止其后的语句被多执行一次。


http://www.ppmy.cn/news/515067.html

相关文章

凌动cpu可以用linux,英特尔:新型凌动芯片将支持Android和Linux

描述 据国外媒体报道&#xff0c;英特尔上周宣布代号为“Clover Trail”的凌动处理器将不支持Android或Linux激怒了开源软件社区。现在&#xff0c;英特尔改变了主意&#xff0c;表示“Clover Trail”凌动处理器芯片将在Windows 8发布之后支持Linux。 英特尔高管在周召开的英特…

凌动x7可以用linux吗,凌动x7处理器_凌动处理器玩游戏_凌动处理器型号

【PConline 资讯】2015年2月26日&#xff0c;北京——英特尔宣布&#xff0c;从下一代处理器开始&#xff0c;英特尔凌动系列将提供三个不同的品牌级别——英特尔凌动x3、x5和x7&#xff0c;旨在帮助消费者一目了然地了解平板电脑、智能手机等产品处理器的性能级别&#xff0c;…

c2750服务器性能,国外披露“Avoton”凌动C2750性能测试

前段时间&#xff0c;英特尔在北京举行了“Avoton”凌动C2000处理器系列技术解析会。该产品主要面向微型服务器、冷数据存储以及入门级网络平台&#xff0c;是英特尔第二代64位系统级片上系统。基于该平台的服务器产品&#xff0c;将有望以更为出色的能效和全面的企业级计算特性…

凌动服务器系列,凌动也能造服务器?超微又出怪异新品

【IT168 专稿】上月初举行的英特尔春季IDF上&#xff0c;记者看到超微展示了采用独特设计的2U Twin系列高密度Nehalem服务器&#xff0c;该服务器采用了全冗余设计&#xff0c;包括主板在内的所有部件都有两个互为备份。可以说超微一直以来都以自身独特的设计理念和大胆的实践拓…

英特尔凌动处理器_曾押宝英特尔凌动CPU,华硕手机如今活得如何了?

其实说起华硕手机&#xff0c;相信还有不少人对其依然存在深刻印象。其中&#xff0c;华硕ZenFone系列确实打造出三星Galaxy系列的“统一感”&#xff0c;理论上他们的产品迭代分布乃至产品规格都很足&#xff0c;但为何如今几乎看不到相关消息了&#xff1f; 先聊聊华硕手机的…

intel凌动微型主板千兆网UDP接收数据调试

intel凌动微型主板&#xff0c;运行ubuntu系统&#xff0c;发行版长期维护版本14.04&#xff0c;接收外部利用UDP发送的每秒钟20MB的数据&#xff0c;并存储为200M的文件&#xff0c;利用C编写程序&#xff0c;开启多线程进行处理&#xff0c;开始之初&#xff0c;数据丢包严重…

英特尔推新嵌入式凌动处理器 专攻物联网产业

日前&#xff0c;英特尔发布了一款全新的64位低功耗四核芯处理器系列——Atom x5-E8000。和其他x5系列处理器一样&#xff0c;E8000系列同样采用嵌入式设计&#xff0c;主要针对近两年兴起的物联网产业&#xff0c;而非平板、笔记本以及迷你PC等传统消费领域。 全新的凌动x5-E8…

凌动智行宣布其品智出行业务与高德建立战略合作伙伴关系

高德软件有限公司&#xff0c;阿里巴巴集团子公司&#xff0c;已与凌动智行达成合作&#xff0c;将在其导航应用中为凌动智行提供流量入口。 北京, 2018年7月24日消息–凌动智行有限公司&#xff08;纽约证券交易所代码: LKM&#xff09;&#xff0c;领先的品智出行服务运营商&…