久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放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. 站長(zhǎng)資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      《C語(yǔ)言實(shí)驗(yàn)指導(dǎo)》實(shí)驗(yàn)六 一維數(shù)組

      實(shí)驗(yàn)六 一維數(shù)組

      【目的與要求】

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

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

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

      【上機(jī)內(nèi)容】

      【一般示例】

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

      分析:C中數(shù)組長(zhǎng)度必須是確定大小,即指定N的值。排序的方法有多種,我們?nèi)〕銎渲袃煞N作為參考。

      方法一:起泡排序

      從第一個(gè)數(shù)開始依次對(duì)相鄰兩數(shù)進(jìn)行比較,如次序?qū)t不做任何操作;如次序不對(duì)則使這兩個(gè)數(shù)交換位置。第一遍的(N-1)次比較后,最大的數(shù)已放在最后,第二遍只需考慮(N-1)個(gè)數(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ù),然后把這個(gè)數(shù)與第一個(gè)數(shù)交換,這樣值最小的數(shù)就放到了第一個(gè)位置;然后,在從剩下的數(shù)中找值最小的,把它和第二個(gè)數(shù)互換,使得第二小的數(shù)放在第二個(gè)位置上。以此類推,直到所有的值從小到大的順序排列為止。

      #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】青年歌手參加歌曲大獎(jiǎng)賽,有10個(gè)評(píng)委對(duì)她的進(jìn)行打分,試編程求這位選手的平均得分(去掉一個(gè)最高分和一個(gè)最低分)。

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

      main()

      {int i,j,min;

      float temp,ave=0;

      float a[11];

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

      printf(“n”);

      }

      【例3】輸入一串字符,計(jì)算其中空格的個(gè)數(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. 已有一個(gè)已排好序的數(shù)組,今輸入一個(gè)數(shù),要求按原來(lái)排序的規(guī)律將它插入數(shù)組中。

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

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

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

       

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