У меня проблема при использовании этой программы perimetro (периметр). Я никогда не получаю правильное значение. Я всегда получаю сумасшедшие цифры.C Функция возвращает непредвиденные значения
Это мой код:
#include <stdio.h>
#include <math.h>
int perimetro(int v[][3] , int p);
int main(){
int v[1][3];
int i,j,p;
for (i=0;i<1;i++){
for (j=0;j<3;j++){
printf("Digite o tamanho de um dos lados do triangulo :");
scanf("%d",&v[i][j]);
}
}
perimetro(v,p);
printf("O perimetro corresponde a : %d",p);
return 0;
}
int perimetro(int v[][3], int p) {
p=0;
p=p+v[0][0]+v[0][1]+v[0][2];
return p;
}
Пожалуйста, исправьте свой отступ. Спасибо! –
Ваша проблема в том, когда вы вызываете функцию. он возвращает целое число, и вы не будете присваивать значение в любом месте. Просто присвойте значение функции p - 'p = perimetro (v, p);' –
Как сказал @ user3195614, хотя есть еще одна проблема в том, что вы передаете неинициализированную переменную 'p' в качестве аргумента (значение не используется, но все же). Могу ли я рекомендовать всегда компилировать код с включенными предупреждениями? '-Wall' в GCC или CLang; проверьте руководство вашего компилятора для других поставщиков. –