Basit Bi C Hatası Yardım
-
3 tane sayı verecez bu sayılar a+b>c ,a+c>b, c+b>a olacak ve eksi bir sayı girdigimizde onların mutlak deger halini alıp hesaplayacak.
#include <stdio.h>
int absolute(int m,int n,int k){
if(m<-1|| n<-1||k<-1) m*=-1,n*=-1,k*=-1;
return 0;
}
int triangle(int x,int y,int z){
if((x+y>z)&& (x+z>y) &&(z+y>x))
return 1;
else
return 0;
}
int main()
{
int a,b,c;
printf("give the first number..\n");
scanf("%d",&a);
printf("give the second number..\n");
scanf("%d",&b);
printf("give the third number..\n");
scanf("%d",&c);
if (triangle(absolute(a), absolute(b), absolute(c)))// burda hata alıyorum
printf("they can be a triangle..\n");
else
printf("they cant be a triangle..\n");
system("PAUSE");
return 0;
}
hatalar :too few arguments to function'absolute.3 tane bundan yazmıs
[build eror] [main1.o] Error1 -
int absolute(int m,int n,int k) olarak tanımlamışsın. Yani bu metodu çağırman için 3 tane integer parametre vermelisin. Ama çağırırken de absolute(a) şeklinde çağırmışsın. Tek integer parametre vermişsin.
-
JPriest bunu yazdı:
-----------------------------int absolute(int m,int n,int k) olarak tanımlamışsın. Yani bu metodu çağırman için 3 tane integer parametre vermelisin. Ama çağırırken de absolute(a) şeklinde çağırmışsın. Tek integer parametre vermişsin.
-----------------------------olmadı hocam..yada ben yanlıs anladım..bi kod olarak yazarmısın ?
-
int absolute(int m)
{
if(m<-1)
m*=-1;
return 0;
}
-
abs fonsiyonunu aşağıdaki gibi değiştirirsen sorunun çözülür.
int absolute(int m){
if(m<0)
m*=-1;
return m;
} -
SARI bunu yazdı:
-----------------------------int absolute(int m)
{
if(m
m*=-1;
return 0;
}
-----------------------------Burası da yanlış aslına bakarsan,
fonksiyon çağrılması sırasında call by value olduğu için yazdığın değişkenin değeri atanıyor m'ye ve m yerel bir değişken olduğundan yaptığın herhangi bir değişiklik sonucu etkilemez hesaplanıp unutulur.
Edit m<-1 iken -1 ile çarpmak m=-1 olduğu durumda sonucu yanlış bulmana sebep olur yine. m<0 demelisin ki negatif her sayı için absolute alsın.
-
uLtRaLoVeR bunu yazdı:
-----------------------------SARI bunu yazdı:
-----------------------------int absolute(int m)
{
if(m
m*=-1;
return 0;
}
-----------------------------Burası da yanlış aslına bakarsan,
fonksiyon çağrılması sırasında call by value olduğu için yazdığın değişkenin değeri atanıyor m'ye ve m yerel bir değişken olduğundan yaptığın herhangi bir değişiklik sonucu etkilemez hesaplanıp unutulur.
Edit m
-----------------------------aa hocam haklısın normalde sıfır yapardım aklım nerdeyse -1 yapmısm :D
