首页 > 代码库 > 第八次实验

第八次实验

1.输入若干名学生的成绩(输入人数或用负数结束均可),求其平均分,最高分和最低分,并指出最高分和最低分的学生(给出下标即可),输入一个成绩,说明是第几个学生的成绩。

#include <stdio.h>
#define N 33
int main()
{
	int score[N],a,b,c,sum=0,max,min,grade;
	double average;
	printf("输入学生人数\n");
	scanf("%d",&a);
	for(c=1;c<=a;c++)
	{
		printf("输入第%d个学生的成绩\n",c);
		scanf("%d",&score[c]);
		sum=sum+score[c];
	}
	average=(double)sum/a;
	printf("平均成绩%.2f\n",average);
	max=score[1];
	min=score[1];
	for(c=1;c<=a;c++)
	{
		if(score[c]>max)
		max=score[c];
		if(score[c]<min)
		min=score[c];
	}
	for(c=1;c<=a;c++)
	{
		if(score[c]==min)
		{	
			printf("第%d名学生成绩最低\n",c);
		}
		if(score[c]==max)
		{
			printf("第%d名学生成绩最高\n",c);
		}
	}
	printf("输入成绩\n");
	scanf("%d",&grade);
	b=0;
	for(c=1;c<=a;c++)
	{
		if(score[c]==grade)
		{
			printf("该学生为%d\n",c);
			b++;
		}
	}
	printf("共有%d名\n",b);
	return 0;
}

  技术分享

2.现有一个有序正整数数组(从小到大排序),输入一个数,插入到数组中,要求插入后的数组仍然有序。对插入到最前、最后、中间位置三种情况进行验证。

  

# include<stdio.h>
# define N 11
int main()
{
	int a=1,b,c,number,numbers[N]={1,3,5,7,9,10,11,12,13,14};
	printf("输入该数\n");
	scanf("%d",&number);
	for(b=0;b<N-1;b++)
	{
		if(number<=numbers[b])
		{
			for(c=N-2;c>=b;c--)
			{
				numbers[c+1]=numbers[c];
			}
			numbers[b]=number;
			break;
		}
		if(number<numbers[0])
		{
			numbers[0]=number;
		}
		if(number>=numbers[N-2])
		{
			numbers[N-1]=number;
		}
	}
	
	for(b=0;b<N;b++)
	{
		printf(" %d",numbers[b]);
	}
	return 0;
}

  技术分享技术分享技术分享

3.用数组实现火柴棍等式

  

#include <stdio.h>
int main()
{
	int a,b,c,g[10]={6,2,5,5,4,5,6,3,7,6};
	for(a=0;a<=9;a++)
    for(b=0;b<=9;b++)
	{
		c=a+b;
		if(c>9)
		break;
        if(g[a]+g[b]+g[c]==12)
		{	
			printf("%d+%d=%d\n",a,b,c);
		}
	}
	return 0;
}

  技术分享

二.知识点总结:
数组不初始化,其元素为随机数
只给部分数组元素赋初值,则其后的元素被初始值为0
当全部数组元素赋初值时,可不指定数组长度
数组中的每一个元素都属于同一种数据类型
数组一旦建立,不能改变大小
数组的元素在内存中是连续依次排序的

  

三.实验错误
题2.逻辑思维,是在那个变量的基础上往后推
题1.简化,能写到一起的写到一起

  

第八次实验