Advertisement
Guest User

Untitled

a guest
Mar 29th, 2017
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.97 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. #define MAX_N 100 // normally n <= 100
  4.  
  5. int main() {
  6.  
  7. int n; // num of lines;
  8. int t[MAX_N]; // type tag;
  9. int numbers[MAX_N]; // number of positive num
  10. // though float(6~7)>6, precision seems not enough
  11. double average[MAX_N]; // average of each line;
  12.  
  13. /* read line num */
  14. scanf("%d", &n);
  15. n = n <= MAX_N ? n : MAX_N; // for safety
  16.  
  17. int i, j, k; // loop index
  18. int tmp;
  19. /* scan each line */
  20. for (i = 0; i < n; ++i) {
  21. /* read type tag */
  22. scanf("%d", &t[i]);
  23.  
  24. /* init */
  25. numbers[i] = 0;
  26. average[i] = 0;
  27.  
  28. if (0 == t[i]) { // continue
  29. /* read each number */
  30. for (j = 0; j < 10; ++j) {
  31. scanf("%d", &tmp);
  32. if (tmp <= 0)
  33. continue;
  34. else {
  35. numbers[i]++;
  36. average[i] += tmp;
  37. }
  38. }
  39. }
  40. else { // no continue
  41. /* read each number */
  42. for (j = 0; j < 10; ++j) {
  43. scanf("%d", &tmp);
  44. if (tmp > 0) {
  45. numbers[i]++;
  46. average[i] += tmp;
  47. }
  48. }
  49. }
  50.  
  51. /* div sum to average */
  52. if (numbers[i] > 1) // take care: div by 0
  53. average[i] /= numbers[i];
  54. }
  55.  
  56. /* output */
  57. for (i = 0; i < n; ++i) {
  58. if (numbers[i] > 0) { // no output if no positive num
  59. if (0 == t[i])
  60. printf("In \"continue\" way,numbers=%d,average=%.6f\n", numbers[i], average[i]);
  61. else
  62. printf("In \"no continue\" way,numbers=%d,average=%.6f\n", numbers[i], average[i]);
  63. }
  64. else
  65. printf("\n");
  66. }
  67.  
  68. return 0;
  69. }
  70.  
  71. /*
  72. 样例输入
  73. 3
  74. 0 10 -20 -30 40 -50 60 70 80 90 -100
  75. 1 10 -20 -30 40 -50 60 70 80 90 -100
  76. 1 8467 -3666 -3500 9169 5724 1478 -642 -3038 -5536 -4295
  77.  
  78. 样例输出
  79. In "continue" way,numbers=6,average=58.333333
  80. In "no continue" way,numbers=6,average=58.333333
  81. In "no continue" way,numbers=4,average=6209.500000
  82. */
  83.  
  84.  
  85. /*
  86. 测试输出
  87. In "continue" way,numbers=6,average=58.333333
  88. In "no continue" way,numbers=6,average=58.333333
  89. In "no continue" way,numbers=4,average=6209.500000
  90. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement