Массив триплетного шоу только один раз
У меня есть эта функция: int triplet(массив int *, размер int, int K) { int i, j, k;
for(i = 0; i < size-2; i++) {
for (j = i+1; j < size-1; j++) {
for (k = j+1; k < size; k++) {
/* Check if the sum of current triplets
is equal to "K" */
if(array[i] + array[j] + array[k] == K) {
printf("Triplet Found : %d, %d, %d\n", array[i], array[j], array[k]);
return 1;
}
}
}
}
/* No triplet found whose sum is equal to K */
return 0;}
Но он показывает только 1 триплет из моего массива, когда триплетов слишком много, и как считать все триплеты шоу? Что лучше, иметь этот триплет в функции или в int main (void)? Спасибо за совет
1 ответ
Решение
Не return
из функции в
if(array[i] + array[j] + array[k] == K) {
printf("Triplet Found : %d, %d, %d\n", array[i], array[j], array[k]);
return 1;
}
Вы можете сделать вместо этого что-то вроде этого:
int triplet(int *array, int size, int K) {
int i, j, k;
int found = 0; /* triplets whose sum is equal to K */
for(i = 0; i < size-2; i++) {
for (j = i+1; j < size-1; j++) {
for (k = j+1; k < size; k++) {
if(array[i] + array[j] + array[k] == K) {
printf("Triplet Found : %d, %d, %d\n", array[i], array[j], array[k]);
found++;
}
}
}
}
return found;
}