Функция с переменным числом параметров в С

Есть два задания по функции с переменным числом параметров. Первое я сделал, но вот второе не совсем понимаю как правильно написать. Они похожи, но немного отличаются. Вот первое:

В функцию с переменным числом параметров поступают целые числа, конец списка – значение -1. Найти и напечатать все четные числа, не содержащие цифры 7. Найти их количество или вывести уведомление об их отсутствии.

Вот второе задание, которое не могу решить:

В функцию с переменным числом параметров поступают положительные целые числа, конец списка – значение –1. Счесть, сколько раз встречается каждая цифра в заданном числе.

А это мой ответ к первому заданию:

func.c

#include <stdio.h>
#include <math.h>
#include <stdarg.h>
#include "func.h"

int containsSeven(int num) {
    num = num < 0 ? -num : num;
    while (num > 0) {
        if (num % 10 == 7) return 1;
        num /= 10;
    }
    return 0;
}

int find_nums(int num, ...) {
    int n = num;
    va_list args;
    va_start(args, num);
    int count = 0;
    while (n != -1) {
        if (n % 2 == 0 && !containsSeven(n)) {
            printf("%d ", n);
            count++;
        }
        n = va_arg(args, int);
    }
    va_end(args);
    return count;
} 

func.h

#ifndef LAB06_02
#define LAB06_02

int containsSeven(int num);
int find_nums(int num, ...);

#endif

main.c

#include <stdio.h>
#include <conio.h>
#include "func.h"

#define MAX_SIZE 25

int main() {
    int arr[MAX_SIZE] = { 0 };
    printf("Numbers: ");

    for (int i = 0; i < MAX_SIZE; i++) {
        scanf("%d", arr + i);
        if (arr[i] == -1) break;
    }

    printf("Result: ");
    int quantity = find_nums(arr[0], arr[1], arr[2], arr[3], arr[4], arr[5], arr[6], arr[7], arr[8], arr[9],
        arr[10], arr[11], arr[12], arr[13], arr[14], arr[15], arr[16], arr[17], arr[18],
        arr[19], arr[20], arr[21], arr[22], arr[23], arr[24]);

    if (quantity != 0) printf("\nFinded numbers: %d\n", quantity);
    else printf("\nNo such numbers.");
    getch();
    return 0;
}

Ответы (0 шт):