if问题
为什么下面的程序我输入小数它不执行第一个if里面的语句?#include<stdio.h>
void main()
{
int a,x;
printf("in a numble\n");
scanf("%d",&a);
if(a%1!=0)
{
printf("Please input errors from the new input\n");
}
else
{
if(0<a,a<4)
{
printf("this is a sushu\n");
}
else
{
for(x=2;x<a;x++)
{
if(a%x==0)
{
printf("this is nota sushu\n");
}
else
{
printf("this is a sushu\n");
}
break;
}
}
}
}
{:7_176:}
scanf("%d",&a);
%d是整形 你输入小数也只会取整数部分
再说%也是针对整形的 不管什么数 ÷ 1 余数肯定是0啊
所以
if(a%1!=0)
{
printf("Please input errors from the new input\n");
}
这肯定不会执行啊 碉堡了,很少看见人家程序写你这样的。if else if 没学过吗 因为A是整形,你说小数的时候,他默认会只取整数部分,int a;a=1.1;printf("%d",a);结果为1,可以改变A变量的类型,来解决这个问题 奋斗小小鸟 发表于 2014-7-14 20:54
因为A是整形,你说小数的时候,他默认会只取整数部分,int a;a=1.1;printf("%d",a);结果为1,可以改变A变 ...
改变类型,结构也得改改 #include <stdio.h>
int main ()
{
int n;
printf("Please Input a number:");
scanf("%d",&n);
printf("%d\n",n);
return 0;
}
你自己输入小数试试看就知道了 这是我自己写的一个
#include <stdio.h>
#include<math.h>
void close();
int main ()
{
int n,i;
s: printf("Please Input a number:");
if(scanf("%d",&n))
{
if(n == 1)
{
printf("1既不是素数也不是和数!\n");
close;
goto s;
}
else if(n == 2)
{
printf("%d是素数!\n",n);
close;
goto s;
}
else if(n%2==0)
{
printf("%d是和数!\n",n);
close;
goto s;
}
else
{
for(i=3;i<=sqrt
(n);i=i+2)
{
if(n%i==0)
{
break;
}
}
if(i<=sqrt(n))
{
printf("%d是和数!\n",n);
close;
goto s;
}
else
{
printf("%d是素数!\n",n);
close;
goto s;
}
}
}
return 0;
}
void close()
{
char ch;
while((ch = getchar())!='\n');
} !=出在这个判断语句 牡丹花下死做鬼 发表于 2014-7-15 10:30
你自己输入小数试试看就知道了
如果我想让用户输入带有小数的数字后就显示输入错误该怎么办呢? 千寻0 发表于 2014-7-15 12:46
如果我想让用户输入带有小数的数字后就显示输入错误该怎么办呢?
最后价格else呗 reg163 发表于 2014-7-14 20:31
碉堡了,很少看见人家程序写你这样的。if else if 没学过吗
我写的有什么问题吗? 牡丹花下死做鬼 发表于 2014-7-15 12:54
最后价格else呗
初学不知道该怎么写判断 路过 顶一下
页:
[1]