【每日一练】学习记录
题目
- 求一个字符串数组的最大值和次大值 void big(char arr[],int size ,char* big11,char** big22)
思路
- 在main函数定义字符指针数组char* arr[5]={“wangdao”,”fenghua”,”xianyu”,”loulou”,”longge”} ,还有char* big1,char* big2,把&big1和&big2传递给big函数,最终big函数执行结束后,big1指向最大字符串,big2指向次大字符串
代码
#include <stdio.h> #include <stdlib.h> #include <string.h> //找到最大字符串和次大字符串 void big(char **arr,int size ,char** big11,char** big22) { int i; //把arr[0]和arr[1]中比较大的赋值给*big11 *big11=strcmp(arr[0],arr[1])>0?arr[0]:arr[1]; *big22=strcmp(arr[0],arr[1])<=0?arr[0]:arr[1]; for(i=2;i<size;i++) { if(strcmp(arr[i],*big11)>0)//某个字符串大于最大的字符串 { *big22=*big11;//原来的最大就变为次大 *big11=arr[i];//arr[i]变为最大 }else if(strcmp(arr[i],*big22)>0) { *big22=arr[i];//arr[i]比次大的要大,就成为次大 } } } void find_max() { char *parr[5]={"wangdao","fenghua","xianyu","loulou","longge"}; char *big1; char *big2; big(parr,5,&big1,&big2); printf("big1=%s,big2=%s\n",big1,big2); } int main() { find_max(); system("pause"); }
执行结果