我的程序返回错误的结果。老实说,我不知道问题出在哪里。 a==5
和b==3
并没有返回正确的结果,而是为a ^ 2 + b ^ 2
返回2,为(a + b) ^ 2
返回10。除非我以错误的方式使用指针,否则我不知道问题出在哪里。
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a=5;
int b=3;
int c,d;
koko(&a,&b,&c,&d);
printf("Rezulat brojeva %d i %d je %d i %d",a,b,c,d);
}
int koko(int *x,int *y,int *z,int *u)
{
*z=(*x)^2+(*y)^2;
*u=(*x+*y)^2;
}
^
运算符在c中不求幂。它是按位XOR运算符,请参见此link。您可以改用它:
int koko(int *x,int *y,int *z,int *u)
{
*z=(*x)*(*x)+(*y)*(*y);
*u=(*x+*y)*(*x+*y);
}