这是我在pta做题所遇见的,觉得还是需要考验一定的思维,所以分享一下
题目
找出字符串中包含的最大的正整数。
输入格式:
输入一行字符,字符个数不超过100,以#结束。
输出格式:
输出包含的最大正整数值,如果没有包含整数,输出none。
输入样例:
er23**345df f2#
输出样例:
345
输入样例:
er***&&&dff#
输出样例:
none
思路
需要解决的问题:
1.怎么做到将数字输出
2.储存在字符数组,怎么输出数字
3.怎么判断是个数字,以及判断这个数结束没有
源代码
#include<stdio.h>
#include<string.h>
int main()
{
char arr[100];
gets(arr);
int i;
int max=0;
int a=0;
int j;
for(i=0;arr[i]!='#';i++)
{
//判断这个数是不是数字,如果是进行下一步
if(arr[i]>='0'&&arr[i]<='9')
{
//这是最重要的一步,一步一步输出数字
a=a*10+arr[i]-'0';//一定要减去'0',不然是ascll码
}
//如果这个数不是整数,就清零
else
a=0;
if(a>max)
{
max=a;
}
}
if(max==0)//如果最大值没有变,证明没有整数
{
printf("none");
}
else
printf("%d",max);
}
结论
掌握好基本知识,才能灵活运用