一、实验内容

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

代码:

#include <stdio.h>
#define N 1000
int main()
{
  int a,i=0,sum=0,max,min,m=0,n=0,e=0;
  double average;
  int score[N];
  printf("人数\n");
  scanf("%d",&a);
  for(i=0;i<a;i++)
  {
    printf("学生成绩\n");
	scanf("%d",&score[i]);
	sum=sum+score[i];
  }
  average=(double)sum/a;
  printf("%.2lf\n",average);
  max=score[0];
  min=score[0];
  for(i=0;i<a;i++)
  {
    if(score[i]>max)
	{
	  max=score[i];
	  m=i;
    if(score[i]<min)
	{
	  min=score[i];
	  e=i;
  }
  printf("max=%d,min=%d,m=%d",max,min,m);
  printf("input the score you want to find\n",m);
  scanf("%d",&n);
  for(i=0;i<a;i++)
  {
    if(n==score[i])
 
   {
            printf("%d\n",i);
            m=m+1;
        }
    }
    printf("符合要求的一共有%d个\n",m);
    return 0;
  }

  运行结果:

 

2.

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

代码:

#include <stdio.h>
#define N 10
int main()
{
	int num[N]={3,6,9,12,16,19,23,26,29},i,j,n,a,b;
	
	printf("请输入一个数字:\n");
	scanf("%d",&a);
	for(i=0;i>=0;i++)
	{
	  if(a<num[i+1])
	  {
	    for(j=8;j>i;j--)
        
		{
		  num[j+1]=num[j];
		}
		  num[i+1]=a;
		  break;
		}
	  }
	for(i=0;i<N;i++)
	printf("%4d",num[i]);
	return 0;
}

  运行结果:

3.实验要求:运用数组写火柴棍

代码:

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

  运行结果:

 

知识点总结:1.数组的基本格式 :数组类型    数组名称  数组长度,数组的下标从零开始。

               2.数组必须先定义后使用。

               3.数组能处理大量数据,优化程序。

               4.数组一旦创建,不能改变大小。

               5.多方面考虑题目结果,使代码完整。

               6.变量对应的关系要搞清楚。

实验总结:  1.数组与循环结构紧密相连,循环变量的值随数组元素的下标变化。

                 2.注意数组越界问题。

                 3.注意数组中插入数字时,其后面的数字位置都加1.

                 4.数组不能被赋值。

posted on 2016-11-23 14:49  芒果酸奶  阅读(158)  评论(10编辑  收藏  举报