C语言程序设计:用户输入一个小数,输入小数的保留位数,比如:3.1415926,保留两位小数四舍五入,输入2... 200
3个回答
2017-08-15
展开全部
#include <stdio.h>
void main(){
float i,j,sum=0,f;
int m,a[100],count=1,count1=1,n=1,p,p1,n1;
printf("请输入小数:");
scanf("%f",&i);
printf("请输入保留的小数位数:");
scanf("%d",&m);
j=i-(int)i;/*得出小数部分*/
printf("%f",j);
while(count<=m+1) //取出小数后m+1位
{
j=j*10; //更新j值,把小数点后第一位放在个位上
a[n]=(int)j%10;
/*printf("%d",a[n]);*/
n++;
count++;
}
if(a[n-1]>=5){
a[n-2]=a[n-2]+1;
}
for(p=1;p<n;p++){
printf("\n%d",a[p]);
}
for(p1=1;p1<n-1;p1++){
n1=p1;
f=a[p1];
while(p1!=0){
f=f/10.0;
p1--;
}
sum=sum+f;
/*printf("\n%f",sum);*/
p1=n1;
}
printf("所需要结果为:%f",sum+int(i));
}
void main(){
float i,j,sum=0,f;
int m,a[100],count=1,count1=1,n=1,p,p1,n1;
printf("请输入小数:");
scanf("%f",&i);
printf("请输入保留的小数位数:");
scanf("%d",&m);
j=i-(int)i;/*得出小数部分*/
printf("%f",j);
while(count<=m+1) //取出小数后m+1位
{
j=j*10; //更新j值,把小数点后第一位放在个位上
a[n]=(int)j%10;
/*printf("%d",a[n]);*/
n++;
count++;
}
if(a[n-1]>=5){
a[n-2]=a[n-2]+1;
}
for(p=1;p<n;p++){
printf("\n%d",a[p]);
}
for(p1=1;p1<n-1;p1++){
n1=p1;
f=a[p1];
while(p1!=0){
f=f/10.0;
p1--;
}
sum=sum+f;
/*printf("\n%f",sum);*/
p1=n1;
}
printf("所需要结果为:%f",sum+int(i));
}
展开全部
C语言有个设置截取几位数的方法啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <stdio.h>
int main()
{float x;
int i,n;
char s[30];
scanf("%f%d",&x,&n);
sprintf(s,"%f",x);
for(i=0;s[i]!='.';i++);
i+=n+1;
if(s[i]>'4')s[i-1]++;
s[i--]='\0';
while(s[i]>'9')
{s[i--]='0'; s[i]++;}
printf("%s\n",s);
return 0;
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询