当前位置: 代码迷 >> C语言 >> 这段程序怎么错了?
  详细解决方案

这段程序怎么错了?

热度:392   发布时间:2006-10-01 09:19:43.0
这段程序怎么错了?
#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;
}


----------------解决方案--------------------------------------------------------
  相关解决方案