首页 > 代码库 > 作业8

作业8

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

#include <stdio.h>
int main ()
{
	int n;
	int score[n],max=0,sum=0,i,min=101,a,b,x;
	double average;
	printf("请输入有多少人");
	scanf("%d",&n) ;
	for (i=0;i<n;i++)
{
	printf("请输入成绩");
	scanf("%d",&score[i]) ;
	sum=sum+score[i];
	if(score[i]>max)
	{
		max=score[i];
		a=i;
	}
	if (score[i]<min)
	{
		min=score[i];
		b=i;
	}
	}
	average=sum/n;
	printf("平均分为%.lf,最高为%d,是第%d个,最低是%d,是第%d个",average,max,a,min,b);
	printf("请输入要查找的数字") ;
	scanf("%d",&x);
	for(i=0;i<n;i++) 
	{
		if(score[i]==x) 
		printf("是%d号学生",i);
	}

  技术分享

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

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

技术分享

技术分享

技术分享

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

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

技术分享

实验知识点总结:

1.循环语句for的格式。

2.数组的应用

 

实验总结:

1.许多地方都要注意字母的中英文,尤其是输入完汉字之后总是会输入全角的英文,导致最后找错很麻烦。

2.要注意数组的数字是从0开始

3.注意数组和循环的使用

4.语句的使用要注意分号的使用 ,还有大括号的使用。还要注意执行的返回 ,是否结束。

5.注意嵌套的方式以及跳出循环的位置.

6.注意题目的限制条件

7.注意括号的使用 在很多时候程序错误就是因为括号没扩对。

作业8