pat乙級真題 1012. 數字分類 (20)
阿新 • • 發佈:2019-02-16
題目連結
思路簡介
每類數字設計一個函式,根據函式返回值來判斷該類數字有沒有,以及存在時數字是多少。
程式碼
#include <stdlib.h> #include <stdio.h> int A1(int a[], int num){ int i = 0, temp = 0; while (i < num){ if (a[i] % 5 == 0 && a[i] % 2 == 0) temp += a[i]; i++; } return temp; } bool A2(int a[], int num, int * temp){ int i, flag; flag = i = *temp = 0; while (i < num){ if (a[i] % 5 == 1){ flag++; if (flag % 2 == 1) *temp += a[i]; else *temp -= a[i]; } i++; } if (flag == 0) return false; else return true; } int A3(int a[], int num){ int i = 0, flag = 0; while (i < num){ if (a[i] % 5 == 2) flag++; i++; } return flag; } double A4(int a[], int num){ int i = 0, flag = 0; double temp = 0; while (i < num){ if (a[i] % 5 == 3){ temp += a[i]; flag++; } i++; } if (flag != 0) temp /= flag; return temp; } int A5(int a[], int num){ int i = 0, max = 0; while (i < num){ if (a[i] % 5 == 4) if (a[i] > max) max = a[i]; i++; } return max; } void print(int array[],int _N){ int num1; double num2; num1 = A1(array, _N); if (num1 == 0) printf("N "); else printf("%d ", num1); if (A2(array, _N, &num1)) printf("%d ", num1); else printf("N "); num1 = A3(array, _N); if (num1 == 0) printf("N "); else printf("%d ", num1); num2 = A4(array, _N); if (num2 == 0) printf("N "); else printf("%.1f ", num2); num1 = A5(array, _N); if (num1 == 0) printf("N"); else printf("%d", num1); } int main(){ int array[1000] = {0}, N,j; scanf("%d", &N); j = 0; while (j <N - 1){ scanf("%d ", &array[j]); j++; } scanf("%d", &array[j]); print(array,N); return 0; }