<source id="v77gz"></source>
    <u id="v77gz"><p id="v77gz"></p></u>

      <samp id="v77gz"></samp>

      <var id="v77gz"><td id="v77gz"><ins id="v77gz"></ins></td></var>

      <video id="v77gz"></video>
      <source id="v77gz"></source>
    1. 江蘇省高校計算機等級考試命題研究院 江蘇省高校計算機等級考試輔導
      上機VC++2009春試題3

      2009春上機3

      :改錯題

       以下程序中函數fun(char  (*ss)[N],int *n)的功能是:查找ss所指向的字符串數組中長度最短的字符串,將最短字符串的行號存放在指針n所指向的數組中(可能有多個長度相同的字符串均為最短字符串),函數的返回值為長度最短的字符串的個數

      #include <iostream.h>

      #include <string.h>

      #define M 5

      #define N 20

       

      int fun(char (*ss)[N], int *n)

      {int j=0,k=0,len,minlen;

      for(int i=0;i<M;i++){                       //for循環的作用是查找字符長度最短字符長度

        len=strlen(ss[i]);                             //len保存字符串長度

        if(i==0)               //判斷第一個字符

        {minlen=len;n[j++]=0;k=1;

         break;             //此處不能用break,因為會直接跳出for循環,而改為continue,表示執行下一次循環

        }

        if(len>minlen){                                   //因為求最小數,所以要用<

           minlen=len;j=0;

                n[j++]=i;k=1;

        }

        else if(len==minlen){                          //字符的長度等于最小長度就將下標放入n數組中

          n[j++]=i;k++;

        }

      }

                return k;

      }

       

      void main()

      {char ss[M][N]={"Beijing","Nanjing","Shanghai","Tianjin","Chongqin"};

        int n[M],k;

        cout<<"給定的字符串為:";

        for(int i=0;i<M;i++)                     //for循環輸出ss數組中的值

                 cout<<ss[i]<<'\t';

        cout<<endl;

        k=fun(&ss,n);                        //語法錯誤,數組創地址直接寫數組名字

        cout<<"其中最短字符串有"<<k<<",它們是:";

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

                 cout<<ss[i]<<'\t';     //數組n中存放的是最短字符的下標,所以應該輸出為ss[n[i]]

        cout<<endl;

       

      }

       

      中文在线字幕第一页_中文字幕高跟丝袜作品番号_亚洲中文无无码第_日本亚洲欧美国产日韩a??y_在线观看亚洲av无码专区