C语言:计算表达式x^y的值,分别输出它们的整数部分和小数部分。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言:计算表达式x^y的值,分别输出它们的整数部分和小数部分。相关的知识,希望对你有一定的参考价值。

输入有若干行,每行两个数x、y。
当x<=0时,输出"输入不合要求.",否则输出x^y的它们的整整部分和小数部分。按%lf格式输出。如12.345的输出为"整数部分为12 小数部分为0.345000".

/*

5 6

15625 + 0

1.2 3

1 + 0.728

-2 3

输入不合要求。

3 1.8

7 + 0.224674

q

Press any key to continue

*/

#include <stdio.h>
#include <math.h>

int main(void) 
double x,y,dx;
int ix;
while(scanf("%lf%lf",&x,&y) == 2) 
if(x < 0) 
printf("输入不合要求。\\n");
continue;

dx = pow(x,y);
ix = (int)dx;
dx -= ix;
printf("%d + %g\\n",ix,dx);

return 0; 

参考技术A //#include "stdafx.h"//vc++6.0加上这一行.
#include "stdio.h"
#include "math.h"/
void main(void)
double x,y,sum;
int tmp;
printf("Type x & y(x>0)...\n");
while(scanf("%lf%lf",&x,&y)==2)
if(x>0)
tmp=(int)(sum=pow(x,y));
printf("The integer part is %d\nthe decimal part is %f\n",tmp,sum-tmp);
break;

else printf("Error,redo...\n");

追问

谢谢!

参考技术B 我给你思路,代码自己去写,假设你要将一个小数分离成一个整数和一个小数 :

const float var1 = 3.1415926f;
int var2 = ( int ) var1;
float var3 = var1 - var2;

var1 是需要分离的浮点数,var2 就是小数的整数部分,var3 就是小数的尾数部分了追问

谢谢!

2.采用函数调用的方式,实现两个数的值进行交换:

从键盘输入两个数,调用一个自定义函数实现两个数的交换。分别输出调用前和调用后的变量值。
1)比较采用局部变量和全局变量两种方法;
2)分别采用数组元素与数组名作函数参数两种方法;

参考技术A #include
int fs(int x,int y) return x+y;
void fx(int *x,int *y) int z; z=*x; *x=*y; *y=z;
void main() int x,y,s;
scanf("%d%d",&x,&y);
s=fs(x,y); fx(&x,&y);
printf("%d+%d=%d\n",x,y,s);
参考技术B 可以参考计算机程序设计基础一书本回答被提问者采纳

以上是关于C语言:计算表达式x^y的值,分别输出它们的整数部分和小数部分。的主要内容,如果未能解决你的问题,请参考以下文章

C语言,输入三个整数,X, Y,Z,请把这三个数有小到大输出

C语言 逗号表达式

输入三个整数x,y,z,请把这三个数由小到大输出

C语言中三目运算符是啥?

【向大虾求助,C语言编程问题,C++】输入三个int整数x,y,z,请把这三个数由小到大输出。(注

C语言 求大神改成正确的 题目是:输入两个整数num1和num2,计算并输出它们的和、差、积、商和余数