程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> 編程-這代碼最後那123怎麼沒輸出來?問題出在哪了?

編程-這代碼最後那123怎麼沒輸出來?問題出在哪了?

編輯:編程綜合問答
這代碼最後那123怎麼沒輸出來?問題出在哪了?

輸入一個字符串,內有數字和非數字字符,例如:a123x456 7689?89njnk32lnk123,
將其中連續的數字作為一個整數,依次存放到一維數組a中,例如123放在b[0],456放
在b[1]......統計共有多少個整數,並輸出這些數。弟1行輸出個數,第2行輸出多個整數
,用空格分隔。

 #include<stdio.h>
#include<math.h>
void main()
{
    int i,j=0,k=0,x=0,n,m,b[100];
    char s[100],a[100];
    gets(s);
    for(i=0;s[i]!='\0';i++)
    {
        if(s[i]>='0'&&s[i]<='9')
            a[j++]=s[i];
        else
        {
            j--;
            for(n=0;j>=0;j--,n++)
                x+=(a[j]-'0')*(int)pow(10,n);
            if(x!=0)
                b[k++]=x;
            x=0;  j=0;
        }
    }
    printf("%d\n",k);
    for(m=0;m<k;m++)
        printf("%d ",b[m]);
    printf("\n");
}

圖片說明

最佳回答:


#include
#include
void main()
{
int i,j=0,k=0,x=0,n,m,b[100];
char s[100],a[100];
gets(s);
for(i=0;s[i]!='\0';i++)
{
if(s[i]>='0'&&s[i]<='9')
a[j++]=s[i];
else
{
j--;
for(n=0;j>=0;j--,n++)
x+=(a[j]-'0')*(int)pow(10,n);
if(x!=0)
b[k++]=x;
x=0; j=0;
}
}
/*加以下代碼處理最後一個數據*/
if (j)
{
j--;
for(n=0;j>=0;j--,n++)
x+=(a[j]-'0')*(int)pow(10,n);
if(x!=0)
b[k++]=x;
}
printf("%d\n",k);
for(m=0;m<k;m++)
printf("%d ",b[m]);
printf("\n");
}

YXTS122
YXTS122
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved