分享

指针,数组,输入一个字符串,以回车键结束,将字符串中的整数合并并保存到整型数组中,并输出整数中的最大值和最小值。

 BUPT-BYR 2010-12-08

 

25.指针,数组,输入一个字符串,以回车键结束,将字符串中的整数合并并保存到整型数组中,并输出整数中的最大值和最小值。

 

/*输入一个字符串,以回车键结束,将字符串中的整数合并

 *并保存到整型数组中,并输出整数中的最大值和最小值。

 */

#include<stdio.h>

/*声名两个常量elementNarrayN用于限定书组数组大小*/

#define elementN 50

#define arrayN 50

/*声明函数fine(char[],int,int[],int, int*,int*)用于

 *整合字符串中的整数,并保存到整型数组中,返回整数个数

 */

int fine(char[],int,int[],int, int*,int*);

main()

{

       int elementSize=elementN,arraySize=arrayN,a,i;

       char string[elementN];

       int array[arrayN],*maxPtr,*minPtr,max,min;

       /*给指针变量赋个地址*/

       maxPtr=&max;

       minPtr=&min;    

       printf("请输入字符串:\n");

    gets(string);

       a=find(string,elementSize,array,arraySize,&maxPtr,&minPtr);

       printf("字符串中连续数字合并后得到的数字有:\n");

       /*对字符串中尾数是否是数字的输出的控制*/

       for(i=0;i<=a-1;i++)

       {

              if(array[i]>=0)

                   printf("%d ",array[i]);

       }

       printf("\n整数中最大值是:%d\n",maxPtr);

       printf("整数中最小值是:%d\n",minPtr);

       return(0);

}

 

/*定义函数fine(char[],int,int[],int, int*,int*)用于

 *整合字符串中的整数,并保存到整型数组中,返回整数个数

 */

int find(char string[],int elementSize,int array[],int arraySize,int*maxPtr,int*minPtr)

{

       int count=0,i=0,sum=0,num=1,min=0,max=0;

       /*对整数数组的整合与读取*/

       while(string[i]!='\0')

       {

              /*挑选数字*/

              if(string[i]>='0'&&string[i]<='9')

              {

                     sum=sum*10+((int)string[i]-48);

                     array[count]=sum;

                     num=0;

              }

              /*计算数组元素个数*/

              else

              {

                     num=num+1;

                     if(num==1)

                     {

                            count+=1;

                            sum=0;

                     }

              }

              i++;

       }

       /*寻找最值并赋值给指针*/

       for(i=1;i<=count-1;i++)

       {

              if(array[i]>array[max])

                     max=i;

              if(array[i]<array[min])

                     min=i;

       }

       *maxPtr=array[max];

       *minPtr=array[min];

       return count+1;

}

运行结果如图:

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多