[Error] invalid operands to binary ^ (have ‘float’ and ‘float’)
#include<stdio.h>
int main(void)
{
int a = 0, b=0, c = 0;
float x = 0, y =0;
/*注意:如果y = a*x*x*x+b*x*x+c;再这里写,那么输出的y就是0;
因为C语言严格按照代码先后读取,在这里,x=0*/
printf("请依次输入三元一次方程的系数a、b、c;系数之间用空格键隔开:\n");
scanf("%d %d %d", &a, &b, &c);
printf("请依次输入三元一次方程的自变量 x:\n");
scanf("%f", &x);
y = a*x*x*x+b*x*x+c;/*int型 和 float型变量之间可以相乘。*/
printf("%f", y);
return 0;
}
由 [Error] invalid operands to binary ^ (have ‘float’ and ‘float’)
得到:
float类型不能使用 ^ 做乘法:y = a*x^3+b*x^2+c;
但使用 * 相乘就可以:y = x*x;
同样,我尝试 ^ 做乘法是对所有类型都不行,还是仅仅对浮点型不行;
故,如下,我尝试计算整型a的a^2,结果如下,仍然不可以。
int main(void)
{
int a = 0,c = 0;
printf("输入a:\n") ;
scanf("%d", &a);
c = a^2;
printf("%d",c);
return 0;
}
查询资料知道:C语言中的指数运算只能用循环;
如下:
PS:
下列代码参考作者:李晓nic;
来源:CSDN
原文:https://blog.csdn.net/weixin_42128813/article/details/81156819
int main(void)
{
long long a;
int i,x,n;
while(scanf("%d %d",&x,&n)!=EOF)
{
a=1;
for(i=0;i<n;i++)
{
a=a*x;
}
printf("%lld\n",a);
}
return 0;
}