C语言 您所在的位置:网站首页 程序设计求整数均值 C语言

C语言

2024-07-15 12:08| 来源: 网络整理| 查看: 265

解题思路整理:

1.问题表现形式:让用户输入一系列的正整数,最后输入-1表示输入结束,然后程序计算出这些数字的平均数,输出输入的数字的个数和平均数。 

2.解题套路:

a.if语句 + do-while(先循环后判断之循环体)

#include int main(void) { int a = 0, count = 0;//对用户输入的数值变量以及计数变量count初始化 int sum = 0;//对于数值之和都进行初始化 scanf("%d", &a); if(a!=-1){ do { count++;//最上方scanf()做过一次输入 sum = sum + a; scanf("%d", &a);//同理,scanf()一定要放在sum之后,以免误加-1 }while(a!=-1); } printf("%d %f\n", count, 1.0 * sum / count); /*method -1:1.首先利用if判断第一次输入的数是否为-1, 2.在采用先循环后判断的do-while语句,进行循环 3.一旦用户输入的值为-1,则跳出do-while以及if语句*/ return 0; }

b.while语句(先判断后循环之循环体)

#include int main(void) { int a = 0, count = 0;//对用户输入的数值变量以及计数变量count初始化 int sum = 0;//对于数值之和都进行初始化 scanf("%d", &a);//这一段代码的意义在于: //1.首先读入一个用户所输入的数,避免导致count多一个 //2.如果不输入这个数,由于对a初始化后,会导致while内部死循环 while (a!=-1){ count++; sum = sum + a; scanf("%d", &a);//scanf()必须放while循环中较sum之后,不然sum会在其之前加上-1的数值 } printf("%d %f\n", count, 1.0 * sum / count); //使用浮点型数据输出,加上1.0这个浮点数,结果一定为浮点数 */ //method -1:在while循环之前一定先使用scanf(),主要用到了while循环 return 0; }

3.总结:

二者的共性:

1.保证循环语句中scnaf()一定在sum+=运算之后,防止无用数据-1的乱入。

2.本质的算法逻辑:a.先scanf()输入一个数

                                b.(method-1)先使用if语句判断其输入的数是否为有效值

                                                    若是,则将其带入循环do-while之中

                                                    用户继续利用scanf()进行其余数值输入

                                                    若数值为-1时,跳出循环进行运算

                                  (method-2)使用while语句判断其输入的数是否为有效值

                                                    若是,则将其带入循环while之中

                                                    用户继续利用scanf()进行其余数值输入

                                                    若数值为-1时,跳出循环进行运算

***method-2中的while其实含括了method-1处的if语句作用。

结论:while循环语句 有时可以与 if判断语句+do-while循环语句 进行功能替换。 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有