整数x的y次方函数c语言 求x的y次方c语言( 二 )


result[i] = result[i-1];
result[0] = '1';
}
}
// 乘法,乘数是一个个位数,函数利用了加法运算
void mul1(char *n1, char n2, char *result)
{
int i, n, k, b=0;
k = strlen(n1);
result[k+1] = 0;
for(i=k-1; i = 0; i--) {
n = (n1[i]-'0')*(n2-'0')+b;
if(n9) {
b = n / 10;
result[k--] = (n%10) + '0';
}
else {
b = 0;
result[k--] = n + '0';
}
}
if(b0)
result[0] = b+'0';
else {
for(i = 1; result[i] != 0; i++)
result[i-1] = result[i];
result[i-1] = 0;
}
}
// 乘法,函数利用了乘数为个位数的乘法运算
void mul(char *n1, char *n2, char *result)
{
int i, j, l;
char t1[161], t2[161];
strcpy(result, "0");
l = strlen(n2);
for(j = l-1; j = 0; j--) {
mul1(n1, n2[j], t1);
for(i = 0; il-j-1; i++)
strcat(t1, "0");
strcpy(t2, result);
add(t1, t2, result);
}
}
// 乘方运算,函数利用了乘法运算
void powlong(int x, int y, char *result)
{
int i;
char t1[81], t2[3];
sprintf(result, "%d", x);
for(i = 1; iy; i++) {
strcpy(t1, result);
sprintf(t2, "%d", x);
mul(t1, t2, result);
}
}
main()
{
char r[161];
int x, y;
do {
printf("输入X(1-10之间)和Y(1-20之间): ");
scanf("%d %d", x, y);
if(x10 || x1 || y20 || y1)
continue;
powlong(x, y, r);
printf("%d的%d次方=%s\n", x, y, r);
} while(x || y); // x=0 y=0时结束
}
C语言中x^y是什么意思根据问题补充 。
^=
是个异或并赋值的操作符 。属于位操作符 。二者不同返回1 , 相同返回
0;
意思是
x与y异或的结果存入
x 。
假如
x的二进制是
00000000
00000000
00000000
11111111;
或者更长
y的二进制是
00000000
00000000
11111111
00001111;

x^=y;之后
x
的二进制是
00000000
00000000
11111111
11110000;
用c语言函数求x的y次方int pow(int x,int y)
{
int sum=1;
for (int i=0;iy;i++)
sum*=x;
return sum;
}
整数x的y次方函数c语言的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于求x的y次方c语言、整数x的y次方函数c语言的信息别忘了在本站进行查找喔 。

推荐阅读