<samp id="uu9tx"></samp>
        <samp id="uu9tx"><tr id="uu9tx"><nav id="uu9tx"></nav></tr></samp>
        <delect id="uu9tx"><legend id="uu9tx"><meter id="uu9tx"></meter></legend></delect>
                <samp id="uu9tx"><tr id="uu9tx"><meter id="uu9tx"></meter></tr></samp><nav id="uu9tx"></nav>
                <samp id="uu9tx"></samp>
                  <samp id="uu9tx"><tr id="uu9tx"><meter id="uu9tx"></meter></tr></samp>
                  江蘇省高校計算機等級考試命題研究院 江蘇省高校計算機等級考試輔導
                  上機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;

                   

                  }

                   

                  亚洲欧美日韩国产一区二区三区_全亚洲免费一级黄片_国产一区二区三区不卡视频手机版_国产污三级网站在线观看