Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #define MAX_N 100 // normally n <= 100
- int main() {
- int n; // num of lines;
- int t[MAX_N]; // type tag;
- int numbers[MAX_N]; // number of positive num
- // though float(6~7)>6, precision seems not enough
- double average[MAX_N]; // average of each line;
- /* read line num */
- scanf("%d", &n);
- n = n <= MAX_N ? n : MAX_N; // for safety
- int i, j, k; // loop index
- int tmp;
- /* scan each line */
- for (i = 0; i < n; ++i) {
- /* read type tag */
- scanf("%d", &t[i]);
- /* init */
- numbers[i] = 0;
- average[i] = 0;
- if (0 == t[i]) { // continue
- /* read each number */
- for (j = 0; j < 10; ++j) {
- scanf("%d", &tmp);
- if (tmp <= 0)
- continue;
- else {
- numbers[i]++;
- average[i] += tmp;
- }
- }
- }
- else { // no continue
- /* read each number */
- for (j = 0; j < 10; ++j) {
- scanf("%d", &tmp);
- if (tmp > 0) {
- numbers[i]++;
- average[i] += tmp;
- }
- }
- }
- /* div sum to average */
- if (numbers[i] > 1) // take care: div by 0
- average[i] /= numbers[i];
- }
- /* output */
- for (i = 0; i < n; ++i) {
- if (numbers[i] > 0) { // no output if no positive num
- if (0 == t[i])
- printf("In \"continue\" way,numbers=%d,average=%.6f\n", numbers[i], average[i]);
- else
- printf("In \"no continue\" way,numbers=%d,average=%.6f\n", numbers[i], average[i]);
- }
- else
- printf("\n");
- }
- return 0;
- }
- /*
- 样例输入
- 3
- 0 10 -20 -30 40 -50 60 70 80 90 -100
- 1 10 -20 -30 40 -50 60 70 80 90 -100
- 1 8467 -3666 -3500 9169 5724 1478 -642 -3038 -5536 -4295
- 样例输出
- In "continue" way,numbers=6,average=58.333333
- In "no continue" way,numbers=6,average=58.333333
- In "no continue" way,numbers=4,average=6209.500000
- */
- /*
- 测试输出
- In "continue" way,numbers=6,average=58.333333
- In "no continue" way,numbers=6,average=58.333333
- In "no continue" way,numbers=4,average=6209.500000
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement