Неправильный вывод элементов массива - C (СИ)
Формулировка задачи:
Задача: даны два массива действительных чисел по 12 элементов в каждом. Заменить нулями те элементы первого массива, которые есть во втором.
Должен выводить два массива из 12 чисел, но выводит из 7 чисел.
#include <stdio.h> #include <stdlib.h> #include <time.h> /* run this program using the console pauser or add your own getch, system("pause") or input loop */ int main(int argc, char *argv[]) { int i,a[i],b[i],c[i]; srand(time(NULL)); for(i=0; i<12; i++) { a[i]=rand()%10; } printf("A: %d\n",&a[i]); for(i=0; i<12; i++) { b[i]=rand()%10; } printf("B: %d\n",&b[i]); for(i=0; i<12; i++) { if (a[i]=b[i]) {c[i]=0;} else {c[i]=a[i];} } printf("\n"); printf("A: %d\n",&c[i]); printf("B: %d\n",&b[i]); return 0; }
Решение задачи: «Неправильный вывод элементов массива»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #include <time.h> /* run this program using the console pauser or add your own getch, system("pause") or input loop */ #define SIZE 12 void print_array(int size, int arr[size]); int main(void) { int a[SIZE], b[SIZE],c[SIZE]; int i, j; srand(time(NULL)); for(i = 0; i < SIZE; i++) { a[i] = rand()%10; } printf("A: "); print_array(SIZE, a); for(i = 0; i < SIZE; i++) { b[i] = rand()%10; } printf("B: "); print_array(SIZE, b); for(i = 0; i < SIZE; i++) { for(j = 0; j < SIZE; j++) { if(a[i] == b[j]) { c[i] = 0; break; } else { c[i] = a[i]; } } } printf("C: "); print_array(SIZE, c); return 0; } void print_array(int size, int arr[size]) { int i; for(i = 0; i < size; i++) printf("%d ", arr[i]); printf("\n"); }
Объяснение кода листинга программы
В данном коде:
- Объявляются три массива: a, b, c размером SIZE (12).
- В цикле заполняются все элементы массива a случайными числами от 0 до 9.
- Выводится на экран массив a с помощью функции print_array.
- В цикле заполняются все элементы массива b случайными числами от 0 до 9.
- Выводится на экран массив b с помощью функции print_array.
- В двойном цикле сравниваются элементы массива a и b, если они равны, то в соответствующий элемент массива c записывается 0, иначе записывается значение элемента массива a.
- Выводится на экран массив c с помощью функции print_array.
- Код заканчивается, возвращая 0. Функция print_array принимает два аргумента: размер массива и сам массив, затем в цикле выводит все элементы массива на экран через пробел.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д