编写一个函数,对于两个数字,a和b使用指针返回它们的平方和a ^ 2 + b ^ 2和(a + b)^ 2

问题描述 投票:0回答:1

我的程序返回错误的结果。老实说,我不知道问题出在哪里。 a==5b==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
1个回答
0
投票
^运算符在c中不求幂。它是按位XOR运算符,请参见此link

您可以改用它:

int koko(int *x,int *y,int *z,int *u) { *z=(*x)*(*x)+(*y)*(*y); *u=(*x+*y)*(*x+*y); }

© www.soinside.com 2019 - 2024. All rights reserved.