Неправильный вывод элементов массива - 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");
}

Объяснение кода листинга программы

В данном коде:

  1. Объявляются три массива: a, b, c размером SIZE (12).
  2. В цикле заполняются все элементы массива a случайными числами от 0 до 9.
  3. Выводится на экран массив a с помощью функции print_array.
  4. В цикле заполняются все элементы массива b случайными числами от 0 до 9.
  5. Выводится на экран массив b с помощью функции print_array.
  6. В двойном цикле сравниваются элементы массива a и b, если они равны, то в соответствующий элемент массива c записывается 0, иначе записывается значение элемента массива a.
  7. Выводится на экран массив c с помощью функции print_array.
  8. Код заканчивается, возвращая 0. Функция print_array принимает два аргумента: размер массива и сам массив, затем в цикле выводит все элементы массива на экран через пробел.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.923 из 5
Похожие ответы