欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-05-19 13:40:37
...

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

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

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


问题描述:

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

运行结果:

    MODE —— 计算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。



变长数组运行结果:

MODE —— 计算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;
}