Вычисления и вывод сделать в разных функциях в СИ
Только начал изучать С, так что сильно не ругайте) В общем нужно найти числа оканчивающиеся на 0 и вывести их номер на экран. Но сделать это всё в разных функциях.
void vvod(int A[10], int i) {
srand(time(NULL));
for (i = 0; i < 10; i++) {
*(A + i) = rand();
}
}
void vivod(int i, int A[10]) {
printf("Массив из 10 чисел:\n");
for (i = 0; i < 10; i++) {
printf("%d) %d\n", i + 1, *(A + i));
}
}
void raschot1(int i, int A[10], int masi[10], int N) {
N = 0;
for (i = 0; i < 10; i++) {
if (*(A + i) % 10 == 0) {
masi[N] = i + 1;
N++;
}
}
}
void vivod1(int i, int masi[10], int N) {
printf("Число оканчивающиеся на 0 под номером: %d \n", masi[N]);
}
Вроде придумал что-то, но проблема в том, что выводится только один номер. А чисел оканчивающихся на 0 может быть много (оно и понятно). Но как это сделать не знаю. Прошу помощь.
Ответы (1 шт):
Автор решения: Виктор
→ Ссылка
Код для изучения:
void vvod(int *A) {
int i;
srand(time(NULL));
for (i = 0; i < 10; i++) {
*(A + i) = rand();
}
}
void vivod(int *A) {
int i;
printf("Массив из 10 чисел:\n");
for (i = 0; i < 10; i++) {
printf("%d) %d\n", i + 1, *(A + i));
}
}
int raschot1(int *A, int *masi) {
int N = 0;
int i;
for (i = 0; i < 10; i++) {
if (*(A + i) % 10 == 0) {
masi[N] = i + 1;
N++;
}
}
return N;
}
void vivod1(int *masi, int N) {
int i;
for (i = 0; i < N; i++) {
printf("Число оканчивающиеся на 0 под номером: %d\n", masi[i]);
}
}
int main(int argc, char *argv[]) {
int A[10], arr[10];
int N;
vvod(A);
vivod(A);
N = raschot1(A, arr);
vivod1(arr, N);
return 0;
}