MODE —— 计算10个分数的平均值(知识点: 数组 变长数组)

数组是一个数目固定,类型相同的数据项,数组中的数据项称为元素。数组中的元素都是int、long、或者其他类型。

声明一个数组时,要给编译器提供为数组分配内存所需要的所有信息,包括值的类型(决定每个元素需要的字节数)和数组维(指定了元素的个数)。

数组占用的字节数是元素个数乘以每个元素的字节数。


问题描述:

        使用数组可以存储所有要平均的分数,即存储所有分数,以便重复使用它们。计算10个分数的平均值。

运行结果:

    

代码部分:        

#include <stdio.h>
int main(void)
{
	int grades[10];			//Arrey storing 10 values
	unsigned int count = 10;	//Number of values to be read
	long sum = 0L;			//Sum of the number
	float average = 0.0f;		//Average of the number
	unsigned int i = 0;		//Out loop	
	printf("\nEnter the 10 grades:\n"); //Prompt for the input
	
	//Read the ten numbers to be averaged
	for(i = 0;i < count; ++i)
	{
		printf("%2u>",i+1);
		scanf("%d",&grades[i]);//Read a grade
		sum += grades[i];      //Add it to sum
	}
	average = (float)sum/count;	//Calculate the acerage
	printf("\nAverage of the ten grades entered is : %.2f\n",average);
	return 0;
}

代码说明:

        声明一个包含10个整数的数组grades[10],

        count变量是unsigned int 类型,因为它必须非负。
        接下来,用一个for循环读入数值且累加它们。

        计算平均值的方法用sum除以分数的个数count,count的值是10。



变长数组运行结果:


变长数组代码部分:

#include <stdio.h>
int main(void)
{
//如果定义了_STDC_NO_VLA_ 符号,printf()语句和后面的exit()语句就会包含在程序中。
//如果不支持变长数组,但把这段代码放在main()的开头,printf()函数调用就会心事一个消息,并立即结束程序。
#ifdef _STDC_NO_VLA_
	printf("Variable length arrays are not supported!\n");
	exit(1);
#endif
	size_t nGrades = 0;		//Nmuber of grades
	printf("Enter the number of grades:");
	scanf("%zd",&nGrades);
	int grades[nGrades];			//Arrey storing 10 values
	long sum = 0L;			//Sum of the number
	float average = 0.0f;		//Average of the number
	printf("\nEnter the %zd grades:\n",nGrades); //Prompt for the input
	unsigned int i = 0;
	
	//Read the ten numbers to be averaged
	for(i = 0;i < nGrades; ++i)
	{
		printf("%2u>",i+1);
		scanf("%d",&grades[i]);//Read a grade
		sum += grades[i];      //Add it to sum
	}
	average = (float)sum/nGrades;	//Calculate the acerage
	printf("\nAverage of the %d grades entered is : %.2f\n",nGrades,average);
	return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值