|
2鱼币
题目是这样的 输入一个字符串,内有数字和非数字字符,例如:
A123x456 17960? 302tab5876
将其中连续的数字作为一个整数,依次存放到一维数组a中。例如,123放在a[0],456放在a[1]。。。。。。统计共有多少个整数,并输出这些数
#include<stdio.h>
int main()
{
char str[50],*p; //str为输入的字符串
int a[50],i,n; //a为存放数字的数组
printf("input a string:");
gets(str);
p=str;
n=0;
while(*p != '\0')
{
if((*p>='0') && (*p<='9'))
{
a[n] = a[n] * 10 + *p - '0';
p++;
}
n++;
p++;
}
printf("the number is :\n");
for(i=0;i<n;i++)
printf("%d",a[i]);
printf("\n");
return 0;
}
我输的代码是这样的,但结果是乱码,哪里有问题啊!!!
- #include<stdio.h>
- int main()
- {
- char str[50], *p; //str为输入的字符串
- int i, n;
- int a[50] = { 0 }; //a为存放数字的数组 可能是这里没有初始化为0 数组都是随机的数
- printf("input a string:");
- gets_s(str);
- p = str;
- n = 0;
- while (*p != '\0') //while里面有问题
- {
- if ((*p >= '0') && (*p <= '9'))
- {
- a[n] = a[n] * 10 + *p - '0';
- if (*(p + 1) < '0' || *(p + 1) > '9')
- {
- n++;
- }
- }
- p++;
-
- }
- printf("the number is :\n");
- for (i = 0; i<n; i++)
- printf("%d ", a[i]);
- printf("\n");
- return 0;
- }
复制代码
|
|