C语言求平均值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言求平均值相关的知识,希望对你有一定的参考价值。
编程求若干个整数的平均值, 样例输入: 512345 //第1个数据表示输入数据的个数,其后的数据为输入的数据样例输出: 3.000000
计算机编程语言是程序设计的最重要的工具,它是指计算机能够接受和处理的、具有一定语法规则的语言。从计算机诞生至今,计算机语言经历了机器语言、汇编语言和高级语言几个阶段。[1]在所有的程序设计语言中,只有机器语言编制的源程序能够被计算机直接理解和执行,用其它程序设计语言编写的程序都必须利用语言处理程序“翻译”成计算机所能识别的机器语言程序。[1]
中文名
计算机编程语言
分类
机器语言、汇编语言和高级语言
种类举例
C++、JAVA等
快速
导航
发展历程常用语言语言选取发展方向
简介
计算机编程语言是指用于人与计算机之间通信的语言,是人与计算机之间传递信息的媒因为它是用来进行程序设计的,所以又称程序设计语言或者编程语言。[2]
计算机语言是一种特殊的语言。因为它是用于人与计算机之间传递信息的,所以人算机都能“读懂”。具体地说,一方面,人们要使用计算机语言指挥计算机完成某种特作,就必须对这种工作进行特殊描述,所以它能够被人们读懂。另一方面,计算机必须按计算机语言描述来行动,从而完成其描述的特定工作,所以能够被计算机“读懂”。[2]
发展历程
正如从甲骨文到现代汉字的演变过程是伴随着巨大的变化一样,计算机语言在诞生的短短几十年里,也经过了一个从低级到高的演变过程。具体地说,它经历了机器语言、汇编语言、高级语言3个阶段。[2]
机器语言
机器语言是用二进制代码表示的、计算机能直接识别和执行的一种机器指令的集合,它是计算机的设计者通过计算机的硬件结构赋予计算机的操作功能。机器语言是第一代计算机语言。[3]
计算机使用的是由“0”和“1”组成的二进制数,在计算机诞生之初,人们只能用计算机的语言对计算机发出指令,即写出一串串由“0”和“1”组成的指令序列交由计算机执行,这种计算机认识的语言,就是机器语言。用机器语言编写程序,编程人员要首先熟记所用计算机的全部指令代码和代码的含义。编写程序时,程序员得自己处理每条指令以及每一数据的存储分配和输入输出,还得记住编程过程中每步所使用的工作单元处在何种状态,这是一件十分繁琐的工作。而且,编出的程序全是二进制的指令代码,直观性差又容易出错,并且修改起来也比较困难。此外,不同型号的计算机的机器语言是不相通的,按一种计算机的机器指令编制的程序,不能在另一种计算机上执行,所以,在一台计算机上执行的程序,要想在另台计算机上执行,必须另编程序,造成重复工作。但由于机器语言计算机可以直接识别而不需要进行任何翻译,其运算效率是所有语言中最高的。[3]
汇编语言
为了克服机器语言难读、难编、难记和易出错的缺点,人们就用与代码指令实际含义相近的英文缩写词、字母和数字等符号来取代指令代码(如用ADD表示运算符号“+”的机器代码),于是就产生了汇编语言。所以说,汇编语言是一种用助记符表示的仍然面向机器的计算机语言。汇编语言亦称符号语言。汇编语言由于是采用了助记符号来编写程序,比用机器语言的二进制代码编程要方便些,在一定程度上简化了编程过程。汇编语言的特点是用符号代替了机器指令代码。而且助记符与指令代码一一对应,基本保留了机器语言的灵活性。使用汇编语言能面向机器并较好地发挥机器的特性,得到质量较高的程序。[4]
汇编语言中由于使用了助记符号,用汇编语言编制的程序送入计算机,计算机不能象用机器语言编写的程序一样直接识别和执行,必须通过预先放入计算机的 “汇编程序“的加工和翻译,才能变成能够被计算机识别和处理的二进制代码程序。用汇编语言等非机器语言书写好的符号程序称源程序,运行时汇编程序要将源程序翻译成目标程序。目标程序是机器语言程序,它一经被安置在内存的预定位置上,就能被计算机的CPU处理和执行。[4]
汇编语言像机器指令一样,是硬件操作的控制信息,因而仍然是面向机器的语言,使用起来还是比较繁琐费时,通用性也差。汇编语言是低级语言。但是,汇编语言用来编制系统软件和过程控制软件,其目标程序占用内存空间少,运行速度快,有着高级语言不可替代的用途。[4]
高级语言
不论是机器语言还是汇编语言都是面向硬件的具体操作的,语言对机器的过分依赖,要求使用者必须对硬件结构及其工作原理都十分熟悉,这对非计算机专业人员是难以做到的,对于计算机的推广应用是不利的。计算机事业的发展,促使人们去寻求一些与人类自然语言相接近且能为计算机所接受的语意确定、规则明确、自然直观和通用易学的计算机语言。这种与自然语言相近并为计算机所接受和执行的计算机语言称高级语言。高级语言是面向用户的语言。无论何种机型的计算机,只要配备上相应的高级语言的编译或解释程序,则用该高级语言编写的程序就可以通用。[4]
如今被广泛使用的高级语言有BASIC、PASCAL、C、COBOL、FORTRAN、LOGO以及VC、VB等。这些语言都是属于系统软件。[4]
计算机并不能直接地接受和执行用高级语言编写的源程序,源程序在输入计算机时,通过“翻译程序”翻译成机器语言形式的目标程序,计算机才能识别和执行。这种“翻译”通常有两种方式,即编译方式和解释方式。编译方式是:事先编好一个称为编译程序的机器语言程序,作为系统软件存放在计算机内,当用户由高级语言编写的源程序输入计算机后,编译程序便把源程序整个地翻译成用机器语言表示的与之等价的目标程序,然后计算机再执行该目标程序,以完成源程序要处理的运算并取得结果。解释方式是:源程序进入计算机时,解释程序边扫描边解释作逐句输入逐句翻译,计算机一句句执行,并不产生目标程序。 参考技术A 1. 常规操作
两个数的平均数等于两数之和除以二
int main()
int a = 10;
int b = 5;
int c = a + b;
printf("%d\n", c);
system("pause");
return 0;
1
2
3
4
5
6
7
8
9
10
1
2
3
4
5
6
7
8
9
10
这种方法有一定的缺陷,当a或b的值够大时,以至于超过了intmax(整形所能达到的最大值,这个方法就显得不够严谨。
2. 最常用的方法
如:将较大的数减去较小的数,得到两数的相差多少,再将差值的一
半给较小的数,这样两数就相等了。
int main()
int a = 10;
int b = 5;
int c = a + (b - a) / 2;
system("pause");
return 0;
1
2
3
4
5
6
7
8
1
2
3
4
5
6
7
8
这个方法优于第一种,c的值永远不会超过intmax
3. 使用按位与和按位异或操作符
int main()
int a = 10;
int b = 5;
int c = (a&b) + (a^b)/2;
system("pause");
return 0;
1
2
3
4
5
6
7
8
1
2
3
4
5
6
7
8
这种方法较难理解,一般不建议使用。
4. 在第三种方法基础上使用右移操作符
int main()
int a = 10;
int b = 5;
int c = (a&b) + (a^b>>1);
system("pause");
return 0;
1
2
3
4
5
6
7
8
1
2
3
4
5
6
7
8
将一个数右移一位相当于给这个数除以二。 参考技术B #include <stdio.h>
void main()
int n,i,sum=0,t;
scanf("%d",&n);
for(i=0; i<n; i++)
scanf("%d",&t);
sum+=t;
printf("%f",(double)sum/n);
c语言求解,,,输出一组数的最大值,最小值,和,平均值(保留2位小数)。。不能用数组
不能用数组
#include "stdio.h"
int main()
int n,i=0;
double num,sum=0,ave=0,max,min;
printf("一共有多少个数:");
scanf("%d",&n);
printf("请输入%d个数:\\n",n);
scanf("%lf",&num);
max=min=num;
sum+=num;
for(i=1;i<n;i++)
scanf("%lf",&num);
if(num>max)
max=num;
if(num<min)
min=num;
sum+=num;
ave=sum/n;
printf("输入的%d个数中,最大值为%.2lf,最小值为%.2lf,和为%.2lf,平均值为%.2lf\\n",n,max,min,sum,ave);
参考技术A
#include "stdio.h"
int main()
float d,max,min,sum,n;
printf("输入一组数,以非数字结束:\\n");
n=0;
sum=0;
while(scanf("%f",&d)>0)
if(n==0)
max=d;
min=d;
if(max<d) max=d;
if(min>d) min=d;
sum+=d;
n=n+1;
printf("最大数是:%.2f\\n",max);
printf("最小数是:%.2f\\n",min);
printf("和是:%.2f\\n",sum);
printf("平均数是:%.2f\\n",sum/n);
以上是关于C语言求平均值的主要内容,如果未能解决你的问题,请参考以下文章