透明饺子皮用什么面粉:指针,数组,输入一个字符串,以回车键结束,将字符串中的整数合并并保存到整型数组中,并输出整数中的最大值和最小值。
25.指针,数组,输入一个字符串,以回车键结束,将字符串中的整数合并并保存到整型数组中,并输出整数中的最大值和最小值。
/*输入一个字符串,以回车键结束,将字符串中的整数合并
*并保存到整型数组中,并输出整数中的最大值和最小值。
*/
#include
/*声名两个常量elementN和arrayN用于限定书组数组大小*/
#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;
min=i;
}
*maxPtr=array[max];
*minPtr=array[min];
return count+1;
}