这段程序怎么错了?
#include<stdio.h>void main()
{
double a;
int b,c,d,e;
printf("请您输入一个四个小数位的小数");
scanf("%lf",&a);
b=a*10;
printf("这个数的第一位小数是:%d",b);
c=a*100%10;
printf("这个数的第一位小数是:%d",c);
d=a*1000%10;
printf("这个数的第一位小数是:%d",d);
e=a*10000%10;
printf("这个数的第一位小数是:%d",e);
}
//显示错误是: conversion from 'double ' to 'int ', possible loss of data,这个错误是b=a*10那//
//显示错误是illegal, left operand has type 'double '这个错误是c=a*100%10那//
//之后d,e都显示上一条错误,到底是哪错的?//
//这个小段怎么改啊//谢谢了,急用
----------------解决方案--------------------------------------------------------
类型转换错误.
你用double的a做运算再赋给int类型的b,下同,这就出错了.试试强制类型转换.
其实可以刚开始做b=(int)a*10000;
i=1;
while(b)
{
printf("这个数的第%d位小数是:%d\n",i,b%10);
i++;
b/=10;
}
----------------解决方案--------------------------------------------------------