UVA488 Triangle Wave【打印图案】
In this problem you are to generate a triangular wave form according to a specified pair of Amplitudeand Frequency.
Input
The input begins with a single positive integer on a line by itself indicating the number of the casesfollowing, each of them as described below. This line is followed by a blank line, and there is also ablank line between two consecutive inputs.
Each input set will contain two positive integers, each on a separate line. The first integer is theAmplitude; the second integer is the Frequency.
Output
For each test case, the output must follow the description below. The outputs of two consecutive caseswill be separated by a blank line.
For the output of your program, you will be printing wave forms each separated by a blank line.The total number of wave forms equals the Frequency, and the horizontal “height” of each wave equalsthe Amplitude. The Amplitude will never be greater than nine.
The waveform itself should be filled with integers on each line which indicate the “height” of thatline.
NOTE: There is a blank line after each separate waveform, excluding the last one.
Sample Input
1
3
2
Sample Output
1
22
333
22
1
1
22
333
22
1
问题链接:UVA488 Triangle Wave。
题意简述:输入正整数n为测试实例数,每个实例输入振幅a和频率f,输出数字波形。每个波形直接有一个空行。
问题分析:这个问题的关键是输出控制,控制波幅,控制空行的输出。
程序说明:(略)。
AC的C语言程序如下:
/* UVA488 Triangle Wave */ #include <stdio.h> int main(void) { int n, a, f, i, j, k, l; scanf("%d", &n); for(i=1; i<=n; i++) { scanf("%d%d", &a, &f); for (j=1; j<=f; j++) { for(k=1; k<=a; k++) { for(l=1; l<=k; l++) printf("%d",k); printf("\n"); } for(k=a-1; k>=1; k--) { for(l=1; l<=k; l++) printf("%d",k); printf("\n"); } if(j<f) printf("\n"); } if(i < n) printf("\n"); } return 0; }