c语言编程:输入正整数a和b,其中a和b都小于32767,求a/b的值.要求精确到小数点后n位,其中1<n<200.
2013-10-26
展开全部
这个显然是高精度的问题,直接用系统的double是不能达到200位的精度的,所以只能手动模拟计算除法。程序如下:#include <stdio.h>
int main()
{
int i, a, b, n, s;
char result[201] = {0};
scanf("%d %d %d", &a, &b, &n);
s = a / b;
a = a % b;
for( i = 0; i < n; i++)
{
a *= 10;
result[i] = ( a / b ) + '0';
a %= b;
}
result[201] = '\0';
printf("%d.%s", s, result);
return 0;
}
输入数据:1 7 150结果:
int main()
{
int i, a, b, n, s;
char result[201] = {0};
scanf("%d %d %d", &a, &b, &n);
s = a / b;
a = a % b;
for( i = 0; i < n; i++)
{
a *= 10;
result[i] = ( a / b ) + '0';
a %= b;
}
result[201] = '\0';
printf("%d.%s", s, result);
return 0;
}
输入数据:1 7 150结果:
2013-10-26
展开全部
不好意思哈,这个开始的回答不对,我没运行 现在给你正确的答案
main()
{
int n,m,i=0;
float av=0,k1=0,k2=0;
printf("输入第一个数字:");
scanf("%d",&n);
printf("输入第2个数字:");
scanf("%d",&m);
k1=n/1.0;
k2=m/1.0;
// printf("%f",k2);
av=k1/k2;
printf("%f\n",av);
}
main()
{
int n,m,i=0;
float av=0,k1=0,k2=0;
printf("输入第一个数字:");
scanf("%d",&n);
printf("输入第2个数字:");
scanf("%d",&m);
k1=n/1.0;
k2=m/1.0;
// printf("%f",k2);
av=k1/k2;
printf("%f\n",av);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-10-26
展开全部
#include<stdio.h>
#include<stdlib.h>
int a,b,i,c;
int n;
int main(){
scanf("%d%d",&a,&b);
scanf("%d",&n);
printf("%d",a/b);
if (a%b==0) return 0;
printf(".");
for (i=1;i<n;i++){
a=a%b;
a=a*10;
printf("%d",a/b);
}
a=a%b;
a=a*10;
if (a/b>=5) printf("%d",a/b+1);else printf("%d",a/b);
// system("pause");
return 0;
}
输入a,b,n的。可以满足输出n位小数~
#include<stdlib.h>
int a,b,i,c;
int n;
int main(){
scanf("%d%d",&a,&b);
scanf("%d",&n);
printf("%d",a/b);
if (a%b==0) return 0;
printf(".");
for (i=1;i<n;i++){
a=a%b;
a=a*10;
printf("%d",a/b);
}
a=a%b;
a=a*10;
if (a/b>=5) printf("%d",a/b+1);else printf("%d",a/b);
// system("pause");
return 0;
}
输入a,b,n的。可以满足输出n位小数~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询