注册 登录
编程论坛 VC++/MFC

初学者的问题,简单

a0807061987 发布于 2010-10-27 22:55, 544 次点击
#include <stdio.h>
int main()
{
   
int i;
double a;

for (i=0;i<3;i++)
scanf("%lf",&a); // 判断是否是整数
{
if(int(a)==a)
     
  printf("Yse\n");
 else
  printf("No\n");
}

 return(0);

}
ps:
请问下各位达人怎么连续输入多个数然后得到结果,而不是输一个得一个啊。
我这个只能输多个数,得一个结果。
哪位达人帮忙给解答下啊。(我是初学,太复杂的方法我看不懂)
得到的结果要像这样:
1
2.23
3.000
Yes
No
Yes
而不是
1
yes
2.23
NO
3.000
yes


9 回复
#2
zlx1626362010-10-28 09:08
先定义一个数组。将你要输入的数据输入进去,然后一个个取出来判断。。
#3
a08070619872010-10-28 10:58
#include <stdio.h>
int main()
{
    double a;
 int shu[3],o;  
 for(o=0;o<3;o++)  
 {
     scanf("%lf",&a);   
 shu[o]=a;  //数组赋值
 }
 for(o=0;o<3;o++)  
 {
a=shu[o];//数组输出

 if(int(a)==a)//判断是否是整数
  printf("Yse\n");
 else
  printf("No\n");
 }
 return a;
}
不行啊,到底怎么弄的?
高手帮忙解决下,先谢了。
#4
pbreak2010-10-28 11:54
你的要求帮你改一下,但其中算法有问题就不帮你该了。
int main()
{
    double a;
    int shu[3],o = 0;  
    while (o < 3)
    {
        scanf("%lf",&a);
        shu[o] = a;  //数组赋值
        a = shu[o];//数组输出
        ++o;
        if ( int(a) == a )//判断是否是整数
            printf("Yse\n");
        else
            printf("No\n");
    }   
    return a;
}
#5
a08070619872010-10-28 13:27
楼上得到的结果要像这样:
1
2.23
3.000
Yes
No
Yes
而不是
1
yes
2.23
NO
3.000
yes
你这个我修改了下能跑,但是跑出来是
1
yes
2.23
NO
3.000
yes
这样的结果
#6
pbreak2010-10-28 14:11
前面没有看懂你的意思:
看这下可以了不:
int main()
{
    double a;
    double shu[3];
    int o;  
    for(o=0;o<3;o++)  
    {
        scanf("%lf",&a);   
        shu[o]=a;  //数组赋值
    }
    for(o=0;o<3;o++)  
    {
        a=shu[o];//数组输出

        if(int(a) == a)//判断是否是整数
            printf("Yse\n");
        else
        printf("No\n");
    }
    return a;
}
#7
andyandy2010-10-28 16:30
结果要像这样:
1
2.23
3.000
Yes
No
Yes
那么操作是什么?应该是
输入1        回车
输入2.23     回车
输入3.000    回车
这其中有延时判断问题。如何判断一个数字输完?如何判断全部数字输完?
工程问题看起来简单,其实不简单。
简单是想得简单,其实不是。
问题真的是个好问题。
#8
xdzsm2010-10-28 19:25
#include<stdio.h>
int main()
{
    double a;
    double shu[3];
    int o;  
    for(o=0;o<3;o++)  
    {
        scanf("%lf",&a);   
        shu[o]=a;  //数组赋值
    }
    for(o=0;o<3;o++)  
    {
        a=shu[o];//数组输出
        if(abs(a)== a)//判断是否是整数
        printf("Yse\n");
        else
        printf("No\n");
    }
    system("pause");
    return a;
}

在Dev-cpp下,“if(int(a)==a)//判断是否是整数”报错,

换成“if(abs(a)==a)//判断是否是整数”就好了。

#9
xdzsm2010-10-28 19:30
但是  abs()  是对整型求绝对值,不明白为什么这也可以。
然而,abs() 改为 fabs() 时又会出错。
谁能解释
#10
zlx1626362011-08-21 20:59
回复 7楼 andyandy
你改成if((int(a))==a )试下,估计是操作级别不够高 那个式子成了将bool类型强制转换成int型了
1