zoukankan      html  css  js  c++  java
  • 第八次作业

    一、实验程序

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

    #include<stdio.h>
    #define N 100
    int main()
    {
    	int n,score[N],sum,i,max,min,wei,x;
    	double average;
    	printf("请输入学生人数
    ",n);
    	scanf("%d",&n);
    	printf("请输入所有学生的成绩
    ");
    	sum=0;
    	for(i=0;i<n;i++)                     //  平均数 
    	{
    		scanf("%d",&score[i]);
    		sum=sum+score[i];
    	}
    	average=(double)sum/n;
    	printf("学生的平均成绩为%.2lf",average);
    	max=score[0]; 						//最大值 
    	wei=0;
    	for(i=0;i<n;i++)
    	{
    		if(score[i]>max)
    		{
    			max=score[i];
    			wei=i;
    		}
    	}
    	printf("最高分是%d,这个学生是%d",max,wei);
    	min=score[0];							//最小值 
    	wei=0;
    	for(i=0;i<n;i++)
    	{
    		if(score[i]<min)
    		{
    			min=score[i];
    			wei=i;
    		}
    	}
    	printf("最低分是%d,这个学生是%d",min,wei);
    	printf("请你输入你要查找的学生的成绩
    ");
    	scanf("%d",x);
    	wei=0;									//查找学生 
    	for(i=0;i<n;i++)
    	{
    		if(x==score[i]) 
    		{
    			wei=i+1;
    		}
    	 }
    	 printf("是%d学生的成绩
    ",wei); 
    	return 0;
    }
    

      

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

    #include<stdio.h>
    int main()
    {
        int i,j,a, N[11]={0,3,10,15,25,30,34,56,59,66};
        printf("输入一个数
    ");
        scanf("%d",&a);
        if(a>=N[9])
        {
            printf("现在数据为:0,10,20,30,40,50,60,70,80,90,%d",a);
        }
        else
        {
            for(i=0;i<10;i=i+1)
            {
                if(a<N[i])
                {
                    j=i;
                    break;
                }
            }
            for(i=10;i>=j;i=i-1)
            {    
                N[i+1]=N[i];
            }
            N[j]=a;
            printf("现在数据为");
            for(i=0;i<11;i=i+1)
            {
                printf("%d ",N[i]);
            }
        }
        return 0;
    }
    

      

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

    #include<stdio.h>
    int main() 
    {
    	int x,y,z;
          int gen[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(gen[x]+gen[y]+gen[z]==12&&x+y==z&&x!=y)
    				  {
    				  	printf("%d+%d=%d
    ",x,y,z);
    				  }
    			  }
    		  }
    	  }
      return 0;
    } 
     
    

      

    二、知识点总结

    1、一维数组的定义:数据类型 数组名[数组长度];    如 int a[10]

    2、数组的特点: 每一个元素都属于同一种数据类型,数组一旦创建,不能改变大小。数组中的元素在内存中是连续依次排列的。

    3、数组下标从0开始,允许快速随机访问

    4、数组不能初始化,其元素值为随机数

    5、只能给部分数组元素赋初值,则其后的元素被初始化为0

    6、当全部数组元素赋初值时,可不指定数组长度

    三、实验总结

    1、最好标记解释一下,容易看清自己的程序

    2、通常通过循环结构来实现对数组进行动态赋值

  • 相关阅读:
    散列
    红黑树
    发散二叉搜索树
    二叉搜索树的删除和联结
    平衡树
    二叉搜索树的划分
    在二叉搜索树的根进行插入
    paper169:2020CVPR文章解读:nestedVAE:Isolating common facters via weak supervision
    paper 168: 2018-FATTEN 论文解析-feature space transfer for data augmentation
    paper 167:GPU的使用Theano之tutorial
  • 原文地址:https://www.cnblogs.com/lch1/p/6102210.html
Copyright © 2011-2022 走看看