По сути, у меня есть функция MinSubTab, которая должна вычислять сумму переданного массива, а также изменять значение, переданное в первом аргументе, внутри функции без использования return.Это делается с помощью указателей.В любом случае, я думаю, было бы проще, если бы я просто показал вам код, вот он:
maintab.c
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include "tab.h"
int main(){
int *reftab;
int min;
reftab = (int *)malloc(sizeof(int) * NMAX);
InitTab(reftab,NMAX);
printf("\n Total: %d et min: %d", MinSumTab(&min, reftab, NMAX), min);
free(reftab);
return 0;
}
tab.c
void InitTab(int *tab, int size){
srand(time(NULL));
for (int i=0; i<size; i++){
*(tab+i) = rand() % 10;
}
}
int MinSumTab(int *min, int *tab, int size){
int total=0;
int minimum = NMAX;
int temp = *min;
for (int i=0; i<size; i++){
total += *(tab+i);
}
for (int i=0; i<size; i++){
if(*(tab+i)<minimum){
minimum = *(tab+i);
}
}
*min = minimum;
return total;
}
Таким образом, ожидаемый результат здесь состоит в том, что сумма печатается (что это такое), а минимальное значение массива печатается (что это не так).Каждый раз, когда переменная min равна 8, я понятия не имею, как на самом деле изменить значение min из этой функции.
Пожалуйста, помогите, так как мой мозг больше не способен к рациональному мышлению, прошло 1,5 часа и никакого решения не видно.Спасибо