2015-12-01 1 views
0

Мне нужно, чтобы программа находила соответствующие значения из двух массивов, суммы совпадающих элементов и их количества. Кажется, я сделал первый, а второй дал мне неправильную сумму. Это должно быть 25, но я получаю 14. Наконец, я не мог понять, как получить количество совпадающих элементов. Вся помощь приветствуется. Мой код ниже.Как суммировать совпадающие элементы массивов и подсчитать их число в C

int main(int argc, char *argv[]) { 
    int a[] = {1,2,3,4,5,7,8}; 
    int b[] = {1,2,3,4,6,7,8}; 
    int i,j,sum,count; 

    for (i=0;i<7;i++) 

    { 

    enter code here 
    for (j=0;j<7;j++) 
    { 
     if (a[i] == b[j]) 
    printf("Numbers match: %d\n",a[i]); 
    } 
    } 
    printf("--------------------------------\n"); 
    if (i == j) 
    sum= (i+j); 
    printf("Sum: %d\n",sum); 
    return 0; 
    } 

ответ

0

Попробуйте это. Предполагается, что оба массива одного размера. Вам нужно установить все счетчики (сумма, счет) на известное значение (0), иначе в них будет мусор.

#include <stdio.h> 

int main(int argc, char *argv[]) { 
    int a[] = {1,2,3,4,5,7,8}; 
    int b[] = {1,2,3,4,6,7,8}; 
    int i,j,sum=0,count=0; 
    int numElements = sizeof(a)/sizeof(int); 

    for (i=0;i<numElements;i++) 
    { 
     for (j=0;j<numElements;j++) 
     { 
      if (a[i] == b[j]) { 
       printf("Numbers match: %d\n",a[i]); 
       count++; 
       sum += a[i]; 
      } 
     } 
    } 
    printf("--------------------------------\n"); 

    printf("Sum: %d\n",sum); 
    return 0; 
    } 
Смежные вопросы