6.輸入三個字符串,找出其中最大的字符串。
【解】將輸入的三個字符率分別存于三個一維字符數(shù)組中,另用一個字符指針數(shù)組,分別指向這三個字符串,然后用循環(huán)控制這三個字符串的比較,找出最大的字符串。兩字符串比較時,程序不用標準庫函數(shù),而用兩字符串的對應(yīng)字符比較來實現(xiàn)。完整程序如下:
# include
# define N 120
# define M 3
mian()
{ char s1[N], s2[N],s3[N],*strs[M]={s1,s2,s3},*p,*q,*ms;
int i;
printf("輸入%d個字符串\n", M) ;
for(i= 0; i
ms=strs[0];
for(i=1;i
if(*p<*q) ms=strs[i];
}
printf("最大字符串:%s\n",ms);
}
7.輸入兩個字符串,將它們連接后輸出。
【解】程序設(shè)有兩個存儲字符串的數(shù)組,先輸入兩個字符串,然后找到第一個字符串的末尾,接著將第二個字符串復(fù)制在第一個字符串的后面,然后輸出。程序如下:
# include
# define N 120
main()
{ char s1[N+N],s2[N],*p,*q;
printf("輸入2個字符串\n");
scanf("%s%s",s1,s2);
for(p=sl;* p!=’\0’; p++);
for(q=s2;*p++=*q++;);
printf("兩字符串連接后:%s\n" ,sl);
}
8.比較兩個字符串是否相等。
【解】程序設(shè)兩個存儲字符串的數(shù)組,先輸入兩個字符串,兩字符率比較時,直接用兩字符串的對應(yīng)字符比較來實現(xiàn)。完整程序如下:
# include
# define N 120
main()
{ char sl[N] ,s2[N],*p,*q;
char *result[]={"小于","相等" ,"大于"};
int comp;
printf("輸入 2個字符串\n");
scanf("%s%s",s1,s2);
for(p=sl,q=s2;*q!=’\0’&& *p==*q; p++, q++);
comp=*P <* q? 0:*P==*q? l:2;
printf("字符串1與字符串2比較:%s\n",result[comp]);
}
9.輸入10個整數(shù),將其中最大數(shù)與最后一個數(shù)交換,最小數(shù)與第一個數(shù)交換。
【解】程序設(shè)一個一維數(shù)組存儲輸入的10個整數(shù)。然后遍歷數(shù)組,找出最大元素和最小元素的指針。接著按要求先將最大元素與最后一個元素交換,然后將最小元素與第一個元素交換。最后,輸出數(shù)組中的全部整數(shù)。程序應(yīng)考慮到這樣一種特殊情況,即最后一個元素正是最小元素,它在與最大元素交換后,位置已移到原先存儲最大元素的位置。程序應(yīng)保證最大元素移到末尾,最小元素移到最前端。程序如下:
# include
# define N 10
main()
{ int a[N],*maxp,*minp,*q,t;
printf("入%d個整數(shù)\n,N);
for(q=a;q scanf("%d",&t);*q=t;
}
maxp= minp= a;
for(q=a;q if(*maxp<*p) maxp=q;
if(*minp>*q) minp=q;
}
t=*maxp; *maxp=a[N-1]; a[N-l]=t;
if(minp==&a[N-l]) minp=maxp;
t=* minp;*minp= a[0]; a[0]= t;
for(q=a;q printf("%d",*q);
printf("\n");
}
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |