|
发表于 2024-4-13 22:30:26
|
显示全部楼层
【第1题】:
- #include <stdio.h>
- #define MAX 256
- char f(char * s , int k)
- {
- char e[128] ;
- int i , j ;
- for(i = 0 ; i < 128 ; i ++) e[i] = 0 ;
- for(j = 0 ; s[j] ; j ++) e[s[j]] ++ ;
- for(j = 128 ; j ; j --) if(e[j - 1] >= k) break ;
- return (j) ? j - 1 : '#' ;
- }
- int main(void)
- {
- char s[MAX][MAX] , y[MAX][MAX] ;
- int x[MAX][MAX] , d[MAX] , i , j , n , t ;
- scanf("%d" , & t) ;
- getchar() ;
- for(i = 0 ; i < t ; i ++) {
- for(n = 0 ; (s[i][n] = getchar()) != '\n' ; n ++) ;
- s[i][n] = '\0' ;
- for(j = 0 ; j < n ; j ++) scanf("%d" , & x[i][j]) ;
- getchar() ;
- d[i] = n ;
- }
- for(i = 0 ; i < t ; i ++) {
- for(j = 0 ; j < d[i] ; j ++) y[i][j] = f(s[i] , x[i][j]) ;
- y[i][j] = '\0' ;
- printf("%s\n" , y[i]) ;
- }
- }
复制代码
编译、运行实况:
- D:\[exercise]\C>g++ -o x x.c
- D:\[exercise]\C>x
- 3
- abcde
- 1 1 1 1 2
- aaabbbcc
- 1 2 3 4 5 6 7 8
- aaaabbbccd
- 1 2 3 4 5 6 7 8 9 10
- eeee#
- ccb#####
- dcba######
- D:\[exercise]\C>
复制代码
【第2题】:
- #include <stdio.h>
- #define MAX 256
- int main(void)
- {
- char s[MAX][MAX] ;
- int x[MAX][MAX] , d[MAX] , b , i , j , n , t ;
- scanf("%d" , & t) ;
- getchar() ;
- for(i = 0 ; i < t ; i ++) {
- for(n = 0 ; (s[i][n] = getchar()) != '\n' ; n ++) ;
- s[i][n] = '\0' ;
- for(j = 0 ; j < n ; j ++) scanf("%d" , & x[i][j]) ;
- getchar() ;
- d[i] = n ;
- }
- for(i = 0 ; i < t ; i ++) {
- for(n = j = 0 ; j < d[i] ; j ++) {
- if(s[i][j] == '#') {
- if(n) {
- s[i][j] = '\0' ;
- printf("%s %d\n" , & s[i][b] , n) ;
- n = 0 ;
- }
- } else {
- if(! n) b = j ;
- n += x[i][j] ;
- }
- }
- if(n) printf("%s %d\n" , & s[i][b] , n) ;
- }
- }
复制代码
编译、运行实况:
- D:\[exercise]\C>g++ -o x x.c
- D:\[exercise]\C>x
- 3
- #####
- 1 1 1 1 1
- ##a#a
- 1 1 1 1 1
- aab#c
- 2 3 1 4 5
- a 1
- a 1
- aab 6
- c 5
- D:\[exercise]\C>
复制代码 |
|