首页 > 代码库 > 第八次作业

第八次作业

  一、实验内容   

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

1.1 代码:

#include <stdio.h>
int main()
{
	int a,i,sum=0,max,min,score[100],d,e;
	double average;
	printf("please input a number\n");
	scanf("%d",&a);
	printf("input the score:\n");
	for(i=0;i<a;i++)
	{
		scanf("%d",&score[i]);
		sum+=score[i];
	}
		average=(double)sum/a;	
		max=score[0];
		int b;
	for(i=0;i<a;i++) 
	{
		if(score[i]>max)
		{
			max=score[i];
				b=i;
		}
	}
		min=score[0];
		int c;
	for(i=0;i<a;i++)
	{
		if(score[i]<min)
		{
			min=score[i];
					c=i;
		}
	} 
	printf("请输入你要查找的成绩\n");
	scanf("%d",&d);
	for(i=0;i<a;i++)
	{
		if(d==score[i])
		{
			e=i;
			printf("the number you look for is %d\n",e);
		}
	}
	printf("the average is %.2f\nthe max is %d\nthe min is %d\nmax number is %d\nmin number is %d\n",average,max,min,b,c);
	return 0;
} 

1.2 程序运行结果:

技术分享

 

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

2.1 代码:

#include <stdio.h>
int main()
{
	int score[11]={1,3,5,7,9,11,13,15,17,19},i,n,a,b;
	printf("原始数据为:1,3,5,7,9,11,13,15,17,19\n");
	printf("请输入一个数字\n");
	scanf("%d",&i);
	for(n=0;n<10;n++)
	{
		if(score[n]>i)
		{
			a=n;
			break; 
		}
		else
		{
			a=10;
		}
	}
	for(n=10;n>a;n--)
	{
		score[n]=score[n-1];
	}
	score[a]=i;
	for(n=0;n<11;n++)
	{
		printf("%3d",score[n]);
	}
	return 0;
}

2.2 程序运行结果:

技术分享

技术分享

技术分享

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

3.1 代码:

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

  3.2 程序运行结果:

技术分享

 二、知识点总结

 

1.数组应用时要合理,分清楚是先定义了元素个数好还是直接定义合适

2.程序有多种写法,要尽量找到简单的方法

3.注意各种语句的嵌套以及程序的合法性验证

三、实验总结

1.第一题在判断之前要先输入要判断的值,而且注意输出与定义变量的类型要保持一致

2.第二题判断的时候要注意赋值

3.第三题注意数字为0的情况也要考虑到,数好每个数字分别需要几根火柴。

第八次作业