久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長資訊網
      最全最豐富的資訊網站

      《C語言實驗指導》實驗六 一維數組

      實驗六 一維數組

      【目的與要求】

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

      2.掌握字符數組的使用;

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

      【上機內容】

      【一般示例】

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

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

      方法一:起泡排序

      從第一個數開始依次對相鄰兩數進行比較,如次序對則不做任何操作;如次序不對則使這兩個數交換位置。第一遍的(N-1)次比較后,最大的數已放在最后,第二遍只需考慮(N-1)個數,以此類推直到第(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]);

      }

      方法二:選擇排序

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

      #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個分數利用數組按增序(或降序)排列,計算數組中除第一個和最后一個分數以外的數的平均分,其中排序部分這里用選擇法實現(xiàn)。

      main()

      {int i,j,min;

      float temp,ave=0;

      float a[11];

      printf(“n輸入評委所打的分數: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(“選手所得最后分數:%6.1f”,ave/8);

      printf(“n”);

      }

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

      #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(“空格數為:%d n”,sum);

      }

      【作業(yè)】

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

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

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

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

       

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