(POJ 2888:字符串中的數字)
問題:輸入一個字符串,長度不超過20,字符串中包含數字和非數字字符,將其中是數字的字符提取出來,對它們進行從小到大排序,非數字字符則忽略不計。
輸入:若干行字符串
輸出:每一個字符串中所有數字的升序排序。每個數字占四個字符位置,處理完一行字符串換行一次。
樣例輸入:

樣例輸出:

思路:用字符數組講輸入的字符串進行存儲,找出數字0~9的字符,用int類型的數組進行存儲數字,下面用的是冒泡排序講數字從小到大排序,使用PRintf()函數 printf("%4c",a2[i]+'0');輸出題目要求的格式(使用cout<< setw(4)<< num)
#include<stdio.h>int main(){ int i,n,l,t,m,a2[25]; char a[25],a1[25],j[10]; while(gets(a)) //用a來存儲讀入的字符 { for(i=0;i<10;i++) j[i]=0; l=0; for(i=0;a[i]!='/0';i++) { if(a[i]>=48&&a[i]<=57) //只對字符串中數字0~9討論 a1[l++]=a[i]; } a1[l]='/0'; for(i=0;i<l;i++) a2[i]=int(a1[i]-'0'); for(i=0;i<l-1;i++) //用冒泡排序對字符進行從小到大排序 for(m=0;m<l-1-i;m++) if(a2[m]>a2[m+1]) {uowe t=a2[m]; a2[m]=a2[m+1]; a2[m+1]=t; } for(i=0;i<l;i++) //將出現的數字從小到大打印 printf("%4c",a2[i]+'0'); printf("/n"); } return 0;} 百練/練習對應鏈接http://bailian.openjudge.cn/practice/2888/
新聞熱點
疑難解答