描述:计算表达式x^y的值,分别输出它们的整数部分和小数部分。
输入有若干行,每行两个数x、y。
当x<=0时,输出"输入不合要求.",否则输出x^y的它们的整整部分和小数部分。按%lf格式输出。如12.345的输出为"整数部分为12 小数部分为0.345000".
1.1 2
3.6 7.8
-3 0.5
整数部分为1 小数部分为0.210000
整数部分为21835 小数部分为0.317236
输入不合要求.
下面是我写的代码:
if x<=0
printf输入不合要求.
else val=pow(x,y)
fraction=modf(val,&integer)
printf("整数部分为%.0lf 小数部分为%lf\n",integer,fraction)
问题:当我只输入一行数据时可以正常运行,但当我一次性输入多行数据时,无法正常运行。
#include <stdio.h>
#include <math.h>
int main()
{
float a[100];
float b[100];
float m,n;
int i,count = 0;
while(scanf("%f%f",&m,&n) != EOF)
{
a[count] = m;
b[count] = n;
count++;
}
for( i=0;i<count;i++)
{
if(a[i] <= 0)
{
printf("不合要求\n");
continue;
}
float f = pow(a[i],b[i]);
printf("整数部分为%d,小数部分为%f\n",(int)f,f-(int)f);
}
return 0;
}