A. C語言編程:輸出由鍵盤輸入的n個字元串中最長的字元串。咋做
代碼文本:
#include "stdio.h"
#include <stdlib.h>
#include <string.h>
#define N 101
int Longer(char **str,int n){//判斷串長度函數
int i,k;
for(k=0,i=1;i<n;i++)
if(strlen(str[i])>strlen(str[k]))
k=i;
return k;
}
int main(int argc,char *argv[]){
int n,i;
char **str,*q;
printf("Enter n(int n>0)... ");
if(scanf("%d",&n)==1 && n>0){//輸入字元串個數n
q=(char *)malloc(sizeof(char)*N*n);//由n申請空間
if(!q || (str=(char **)malloc(sizeof(char *)*n))==NULL){
printf("Application memory failure, exit... ");
return 0;//申請不成功則退出
}
for(str[i=0]=q;i<n;str[i++]=q+i*N);//將空間組織成二維數組
printf("Please enter %d string(s)... ",n);
for(i=0;i<n;scanf("%100s",str[i++]));//輸入字元串
printf(" The longest: %s ",str[Longer(str,n)]);//輸出
free(q);//釋放所申請的空間
free(str);
}
else
printf("Input error, exit... ");//輸入錯誤提示
return 0;
}