欧美亚洲中文,在线国自产视频,欧洲一区在线观看视频,亚洲综合中文字幕在线观看

      1. <dfn id="rfwes"></dfn>
          <object id="rfwes"></object>
        1. 站長資訊網(wǎng)
          最全最豐富的資訊網(wǎng)站

          《C語言實驗指導》實驗六 一維數(shù)組

          實驗六 一維數(shù)組

          【目的與要求】

          1.掌握一維數(shù)組的定義、賦值和輸入輸出的方法;

          2.掌握字符數(shù)組的使用;

          3.掌握與數(shù)組有關的算法(例如排序算法)。

          【上機內容】

          【一般示例】

          【例1】在鍵盤上輸入N個整數(shù),試編制程序使該數(shù)組中的數(shù)按照從大到小的次序排列。

          分析:C中數(shù)組長度必須是確定大小,即指定N的值。排序的方法有多種,我們取出其中兩種作為參考。

          方法一:起泡排序

          從第一個數(shù)開始依次對相鄰兩數(shù)進行比較,如次序對則不做任何操作;如次序不對則使這兩個數(shù)交換位置。第一遍的(N-1)次比較后,最大的數(shù)已放在最后,第二遍只需考慮(N-1)個數(shù),以此類推直到第(N-1)遍比較后就可以完成排序。

          源程序如下:

          #define N 10

          #include”stdio.h”

          main()

          {

          int a[N],i,j,temp;

          printf(“please input %d numbersn”,N);

          for(i=0;i<N;i++)

          scanf(“%d”,&a[i]);

          for(i=0;i<N-1;i++)

          for(j=0;j<N-1-i;j++)

          {

          if(a[j]>a[j+1])

          {

          temp=a[j];

          a[j]=a[j+1];

          a[j+1]=temp;

          }

          }

          printf(“the array after sort:n”);

          for(i=0;i<N;i++)

          printf(“%5d”,a[i]);

          }

          方法二:選擇排序

          首先找出值最小的數(shù),然后把這個數(shù)與第一個數(shù)交換,這樣值最小的數(shù)就放到了第一個位置;然后,在從剩下的數(shù)中找值最小的,把它和第二個數(shù)互換,使得第二小的數(shù)放在第二個位置上。以此類推,直到所有的值從小到大的順序排列為止。

          #include”stdio.h”

          #define N 10

          main()

          {

          int a[N],i,j,r,temp;

          printf(“please input %d numbersn”,N);

          for(i=0;i<N;i++)

          scanf(“%d”,&a[i]);

          for(i=0;i<N-1;i++)

          { r=i;

          for(j=i+1;j<N;j++)

          if(a[j]<a[r])

          r=j;

          if(r!=i)

          {

          temp=a[r];

          a[r]=a[i];

          a[i]=temp;

          }

          }

          printf(“the array after sort:n”);

          for(i=0;i<N;i++)

          printf(“%5d”,a[i]);

          printf(“n”);

          }

          【例2】青年歌手參加歌曲大獎賽,有10個評委對她的進行打分,試編程求這位選手的平均得分(去掉一個最高分和一個最低分)。

          分析:這道題的核心是排序。將評委所打的10個分數(shù)利用數(shù)組按增序(或降序)排列,計算數(shù)組中除第一個和最后一個分數(shù)以外的數(shù)的平均分,其中排序部分這里用選擇法實現(xiàn)。

          main()

          {int i,j,min;

          float temp,ave=0;

          float a[11];

          printf(“n輸入評委所打的分數(shù):n”);

          for(i=1;i<=10;i++)

          scanf(“%f”,&a[i]);

          for(i=1;i<=9;i++)

          {min=i;

          for(j=i+1;j<=10;j++)

          if(a[min]>a[j])

          min=j;

          temp=a[i];

          a[i]=a[min];

          a[min]=temp;

          }

          for(i=2;i<=9;i++) /*注意i值的變化范圍*/

          ave=ave+a[i];

          printf(“選手所得最后分數(shù):%6.1f”,ave/8);

          printf(“n”);

          }

          【例3】輸入一串字符,計算其中空格的個數(shù)。

          #include <stdio.h>

          main( )

          {char c[30];

          int i,sum=0;

          gets(c);

          for(i=0;i<strlen(c);i++)

          if(c[i]==’ ‘)

          sum=sum+1;

          printf(“空格數(shù)為:%d n”,sum);

          }

          【作業(yè)】

          1. 已有一個已排好序的數(shù)組,今輸入一個數(shù),要求按原來排序的規(guī)律將它插入數(shù)組中。

          2. 將一個數(shù)組中的值按逆序重新存放。例如,原來順序為8,6,5,4,1。要求改為1,4,5,6,8。

          3. 有15個數(shù)按由小到大順序存放在一個數(shù)組中,輸入一個數(shù),要求用折半查找法找出該數(shù)是數(shù)組中第幾個元素的值。如果該數(shù)不在數(shù)組中,則打印出“無此數(shù)”。

          4. 編一程序,將兩個字符串連接起來,不要用strcat函數(shù)。

           

          贊(0)
          分享到: 更多 (0)
          網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號