Davka1900
@Davka1900

Как сравнить массивы в С?

Я решаю одну задачу там я использую массивы: int a[] = {26, 13, 19, 14, 14, 17, 20, 15, 15, 15,18,10,14};
int b[] = {17, 15, 11, 16, 15, 18, 20, 17, 16, 17,12,12}; Мне нужно их сравнить чтобы вывести какой массив больше или они равны я только начал учить C.Что для этого нужно вот ссылка на задачу: https://acmp.ru/index.asp?main=task&id_task=61
  • Вопрос задан
  • 3042 просмотра
Решения вопроса 2
longclaps
@longclaps
Посмотри условие и примеры по своей же ссылке:
победитель определяется по сумме очков.
Тебе не массивы надо сравнивать, а их суммы.
Ответ написан
dio4
@dio4
team leader, system engineer, master of sports
#include <stdio.h>
/*прототип функции вычисления суммы массива*/
int summarr(int *, int);

int arr1[] = {1,2,3,4,5,13,27};
int arr2[] = {6,7,8,9,10, 101};


int main(int argc, char * argv[]){
	
	int summ_arr1 = 0, summ_arr2 = 0, i;
	/*вызываем функцию вычисления суммы массива*/
	summ_arr1 = summarr(arr1, sizeof arr1/sizeof(int));
	summ_arr2 = summarr(arr2, sizeof arr2/sizeof(int));
	
	/*сравниваем суммы и выводим значение большей из них*/
	fprintf(stdout, "%i ", (summ_arr1 > summ_arr2 ? summ_arr1 : summ_arr2));
	if(summ_arr1 > summ_arr2)
		fprintf(stdout, "большее значение summ_arr1\n");
	else if(summ_arr1 < summ_arr2)
		fprintf(stdout, "большее значение summ_arr2\n");
	else
		fprintf(stdout, "массивы равны");
	return 0;
}

int summarr(int *arr , int size){
	int i, summ_arr = 0;
	for (i = 0; i < size; i++){
		summ_arr += *(arr + i);
	}
	return summ_arr;
}

/*
Linux alexander-Inspiron-3521 3.13.0-74-generic #118-Ubuntu SMP Thu Dec 17 22:52:10 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
вывод в консоли:
$ make sizeof
cc     sizeof.c   -o sizeof
alexander@alexander-Inspiron-3521:~$ ./sizeof
141 большее значение summ_arr2
*/
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@ns5d
нечего сказать
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы