第八次做業

1.輸入若干名學生的成績(輸入人數或用負數結束都可),求其平均分,最高分和最低分,並指出最高分和最低分的學生(給出下標便可),輸入一個成績,說明是第幾個學生的成績。程序員

# include <stdio.h>
# define N 100
int main ()
{
  int score [N] ,n,sum, i,max,min,index,grade,index1,index2;
  double average ;
  printf("輸入學生的個數:\n");
  scanf("%d",&n);
  for (i=0;i<n;i++)
  {
     printf("輸入學生的成績:\n");
     scanf("%d",&score [i]);
  }
  //平均值
  sum=0;
  for (i=0;i<n;i++)
  {
     sum+=score[i];
  }
  average=(double)sum/n;
  printf ( "The average is:%.2f\n" , average ) ;
  //最大值
  max=score[0];
  index=0;
  for(i=0;i<n;i++)
  {
     if(score[i]>max)
     {
        max=score[i];
        index=i;
     }
  }
  printf("最大值爲%d,下標爲%d\n",max,index+1);
  //最小值
  min=score[0];
   index1=0;
  for(i=0;i<n;i++)
  {
      if(score[i]<min)
      {
         min=score[i];
         index1=i;
      }
  }
  printf("最小值爲%d,下標爲%d\n",min,index1+1);
  //學生位置
  index2=0;
  printf("請輸入一個學生的成績:\n");
  scanf("%d",&grade);
  for(i=0;i<n;i++)
  {
     if(grade==score[i])
     {
         index2=i;
         printf("此學生是第%d個學生",index2+1);
         break;
     }

  }


     return 0;

    
}

 

2.現有一個有序正整數數組(從小到大排序),輸入一個數,插入到數組中,要求插入後的數組仍然有序。對插入到最前、最後、中間位置三種狀況進行驗證。數組

# include <stdio.h>
# define N 11
int main ()
{
  int a,b,c,d,i;
  int scare [N]={1,3,5,7,9,11,13,15,17,19};
  printf("請插入一個數字:\n");
  scanf ("%d",&a);
  d=11;
  for (i=0;i<11;i++)
  {
     if (a<scare[i])
     {
        d=i+1;
        printf("插入到%d位\n",d);
        break;
     }
  }
  
    for (i=d-1,c=N-1;i<=c;c--)
    {
        scare[c]=scare[c-1];
      }
      scare[i]=a;
      for (i=0;i<N;i++)
      {
        printf(" %d",scare[i]);
      }
  return 0;
}

 

 

   

 

3.用數組實現火柴棍等式spa

# include <stdio.h>
int main ()
{
   int a,b,c,sum;
   int match[10]={6,2,5,5,4,5,6,3,7,6};
   c=0;
   sum=0;
   for (a=0;a<=9;a++)
   for (b=0;b<=9;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;
}

 

附加題3d

    輸入一行任意長的數字,用數組元素做爲計數器統計每一個數字出現的次數。用下標爲0的元素統計0出現的次數,用下標爲1的元素統計1出現的次數…code

二.知識點:blog

1.一維數組的定義方式: 數據類型 數組名[數組長度];排序

2.數組的特色內存

(1)數組中的每個元素都屬於同一種數據類型 (2)數組一旦建立,不能改變大小 (3)數組中的元素在內存中是連續依次排列的io

3.(1)一維數組的引用 數組必須先定義,後使用 (2)只能逐個引用數組元素,不能一次引用整個數組(3) 每一個數組元素是一個數組類型的變量class

4.(1)數組元素表示形式: 數組名[下標]

(2)下標從0開始

(3)容許快速隨機訪問  

(4)引用時下標容許是int型變量或表達式 a[i]

(5)C語言對數組不做越界檢查,使用時要注意

越界的數組訪問可能致使程序崩潰,所以,這是程序員的責任來保證程序只使用有效的下標值:[0,數組的大小-1]

5.一維數組的賦值

(1)初始化方式   int a[5]={1,2,3,4,5}; 等價於:a[0]=1; a[1]=2; a[2]=3; a[3]=4; a[4]=5;

(2)說明:<1> 數組不初始化,其元素值爲隨機數<2>只給部分數組元素賦初值,則其後的元素被初始化爲0<3>當所有數組元素賦初值時,可不指定數組長度

6.在數組定義後對數組進行動態賦值 一般經過循環結構實現

7.數組變量自己(數組名)不能被賦值

8.要把一個數組的全部元素交給另外一個數組,必須採用 數組遍歷

三.實驗總結:

1.應將min=0改寫爲min=score[0];

2.在輸出值那再讓下標加1;

3.第二題要考慮插入的值爲最大值的狀況

4.第二題因要插入一個只因此要數組元素爲11

相關文章
相關標籤/搜索