C++编程 帮我改一下

来源:百度知道 编辑:UC知道 时间:2024/09/23 06:58:47
只要把下面的b数组改成输入的就可以

#include <stdio.h>
#include <string.h>
main()
{
char b[100]="a123x456 17960?";
int a[20]={0},len=strlen(b),i,j=1,k=-1;

for (i=0;i<=len-1;i++)
{
if(b[i]<58 && b[i]>=48)
{
a[k]=a[k]*10+b[i]-48;}
else {k++;}
}
k=20;
for(i=0;i<20;i++)
if (a[i]==0)
{for(j=i;j<20;j++)
a[i]=a[i+1];k--;}
for(i=0;i<k;i++)
printf("%d ",a[i]);
getchar();getchar();getchar();
}
你们先自己运行一下啊 1楼那个不行的

char b[100];
gets(b);

char b[100]="a123x456 17960?"; 改为:
char b[100];
scanf(“%s”,b);
或者:
char b[100],ch;
ch=getchar();
i=0;
while(i<99&&ch!=13&&ch!='\0')
{
b[i]=ch;
i++;
ch=getchar();
}

输入一个字符串,内有数字和非数字字符,如:a123x456 17960?302tab5876,将其中连续的数字作为一个整数,依次存放到数组a中。例如,123放在a[0]中,456放在a[1]中等等,统计共有多少个整数,并输出这些整数。

程序如下:
#include <stdio.h>
#include <math.h>
#define N 100
void main()
{
char s[N],*p;
int i=0,j=0,m=0,n=0,x=0,a[N/2],*pa;
a[0]=0;
gets(s);
p=s;
pa=a;

while (*p!='\0')
{
if (*p>='0'&&*p<='9') j++;
else if ((*(p-1)>='0')&&(*(p-1)<='9'))
{
x=0;
n++;
for (i=1;i<=j;i++)
{
x+=(*(p-i)-48)*pow(10,m++);
}
m=0;
j=0;
*(pa++)=x;