编程练习题

来源:互联网 发布:粤贵银交易软件 编辑:程序博客网 时间:2024/05/12 07:32

按要求分解字符串,输入两个数M,N;M代表输入的M串字符串,N代表输出的每串字符串的位数,不够补0。例如:输入2,8, “abc” ,“123456789”,则输出为“abc00000”,“12345678“,”90000000”


#include<iostream>  #include<cstdio>  using namespace std;    void solve(char *str , int n , int len)  {      int i , j , k , quotient , remainder;      quotient = len / n;                //原字符串被分解的个数      remainder = len - n * quotient;    //剩余的字符串的个数        for(i = 0 ; i < len ; i += n)      {          if(len - i < n)          {               k = n - len + i;               for(j = i ; j < len ; ++j)                   printf("%c" , str[j]);               for(j = 0 ; j < k ; ++j)                   putchar('0');          }          else          {              for(j = i ; j < i + n ; ++j)                  printf("%c" , str[j]);          }          putchar(' ');      }      printf("\n");  }    int main(void)  {      int i , m , n , len;      char str[1000];        while(scanf("%d %d", &m , &n) != EOF)      {          for(i = 0 ; i < m ; ++i)          {              scanf("%s" , str);              len = strlen(str);              solve(str , n , len);          }      }      return 0;  }  


0 0