水题,只需找出输入浮点数中整数部分最长的一个,然后输出相应的空格个数即可实现小数点对齐。
1 #include <cstdio> 2 #include <cstring> 3 using namespace std; 4 char buf[10001][51]; 5 int main() 6 { 7 int n,i,j; 8 scanf("%d",&n); 9 int len_int[n]; 10 for(i=0;i<n;i++) 11 scanf("%s",buf[i]); 12 int max_int=0,cnt=0; 13 for(i=0;i<n;i++){ 14 for(j=0;j<strlen(buf[i]);j++){ 15 if(buf[i][j]!='.') 16 cnt++; 17 else break; 18 } 19 len_int[i]=cnt; max_int=cnt>max_int?cnt:max_int; cnt=0; 20 } 21 for(i=0;i<n;i++){ 22 for(j=0;j<max_int-len_int[i];j++){ 23 printf(" "); 24 } 25 printf("%s ",buf[i]); 26 } 27 return 0; 28 }