c++两个数判断大小

#include <stdio.h>
#include <stdlib.h>
int main()
{
int a,b;
printf("请输入两个数\n");
scanf("%d,%d",&a,&b);
if(a>b){
printf("%d > %d\n",a,b);
}
if(a=b) {printf("%d = %d\n",a,b);
}
if(a<b) {printf("%d < %d\n",a,b);
}
printf("Sorry,有个BUG\n");
system("pause");
return 0;
}
有毛病。我不知道是怎么回事。

第1个回答  2012-11-03
lz你好
修改代码如下:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a,b;
printf("请输入两个数:\n");
scanf("%d,%d",&a,&b);
if(a>b)
{
printf("%d > %d\n",a,b);
}

else if(a==b)//c语言中=是赋值的意思 ==才是等于的意思 注意了哟
{
printf("%d = %d\n",a,b);
}

else
{
printf("%d < %d\n",a,b);
}
//printf("Sorry,有个BUG\n"); 这条语句没什么用吧 建议去掉
system("pause");
return 0;
}

再有一点就是:
我们最好是使用
if()
……
else if()
……
else

这样的语句更显条理性、逻辑性

希望能帮助你哈本回答被网友采纳
第2个回答  2012-11-03
下面两位都没说完,我测了一下,你那个程序再输入数据时,那儿也不对,你要把那个("%d,%d中间的逗号也删了,不然仍然会输出一个地址,你可以试一下,练一下调试能力
第二个问题就是下面两位说的a==b

等着你那20悬赏呀
第3个回答  2012-11-03
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a,b;
printf("请输入两个数\n");
scanf("%d,%d",&a,&b);
if(a>b){
printf("%d > %d\n",a,b);
}
if(a==b) {printf("%d = %d\n",a,b);//(如果是=的话,会返回一个“真”值,并将a赋值为1)
}
if(a<b) {printf("%d < %d\n",a,b);
}
printf("Sorry,有个BUG\n");
system("pause");
return 0;
}
第4个回答  2012-11-03
在c/c++中, = 是赋值的意思,作用是将=右边的值赋给左边的变量。而且该表达式会返回这个变量被赋值后的值。
举个例子:
int a,b;
b=(a=5);//先进行a=5的操作,将5这个值赋给a这个变量,而且a=5这个表达式又返回了a的值,此时a的值为5,所以a=5这个表达式的值为5。因为b=(a=5),表达式a=5的值(即5)赋给了b。所以b的值也为5。

所以楼主的这句代码
if(a=b) {printf("%d = %d\n",a,b);}
的意思是:将b的值赋给a,并且a=b这句表达式的值为a的值(也为b的值)。在c/c++中,任何非0的值转化为bool型都表示true,只有0会转为false。所以如果b的值不为0,则表达式a=b的值也不为0,则判断成立,执行花括号中的语句;否则不成立,跳过花括号中的语句。
这显然不合该程序的想法。
在c/c++中,判断两者是否相等的运算符是==(即两个等号)。a==b:若a、b值相等,则该表达式值为1(即true),否则为0(fause)。

楼主需要注意,程序语言和数学语言是不太一样的,将两者搞混对初学者来说是经常犯的错误,这需要平时多练习,养成检查代码的好习惯,慢慢就会理解程序的语言,并熟练掌握之。

另外还有一点,倒数第三行中的system("pause")调用了system()函数,而这个函数是在头文件windows.h中的。因此要调用该函数,需要包含该头文件,在代码最前面打上#include <windows.h>即可。(楼主应该明白编程语言中的函数和数学上的函数是两个概念吧。若不理解,之后老师讲课或是自习中会慢慢理解掌握的。学习编程需要耐心,只要一步一步来就可以了。)本回答被提问者采纳

C++控制台小程序 两数比较大小
给出两个数:分别是X和Y,输出两数中的大数。include "PY.h" \/\/引用程序目录的相对路径中的头文件. #include iostream \/\/预处理命令,编译器的类库路径里面的头文件.using namespace std;\/\/std 命名空间,不同的命名空间可以有相同的类名被定义.int max(int x,int y)\/\/int max(int...

c++两个数判断大小
{ int a,b;printf("请输入两个数:\\n");scanf("%d,%d",&a,&b);if(a>b){ printf("%d > %d\\n",a,b);} else if(a==b)\/\/c语言中=是赋值的意思 ==才是等于的意思 注意了哟 { printf("%d = %d\\n",a,b);} else { printf("%d < %d\\n",a,b);} \/\/printf("Sorry...

C++两个数字 比大小的问题. 请告诉指点。一定要解释 注释 谢谢老_百度...
int main() \/\/主函数,即程序入口 { int a,b; \/\/声明两个整数变量 cout<<"请任意输入两个整数比较大小"<<endl; \/\/屏幕打印字符串:请任意输入两个整数比较大小 cout<<"请输入第一个整数"<<endl; \/\/屏幕打印字符串:请输入第一个整数 cin>>a; \/\/将你输入的第一个整数赋值给a cout<<"...

c++怎么判断两个字符串的较小值?
1、判断两个数大小;2、返回较小值。常用的具体实现方法列举如下:1、直接判断:int min(int a, int b){ if(a<b) return a;\/\/a更小,返回a。 return b;\/\/b更小返回b。}2、三目运算符:?:三目运算符可以直接实现判断。代码如下:int min(int a, int b){ return a<b?a:...

在C++程序中怎么写两个数比大小的程序?
void fun(int x,int y){ if(x==y) printf("一样大");else if(x>y) printf(" ");else printf(" ");} 或者是 int fun(int x,int y){ if(x>y) return 1;else return 0;}\/\/主函数中在根据返回值是1或者0 去判断传进来的数哪个大 ...

C++两个数字比大小
scanf("%d,%d",&a,&b);这句多了逗号 scanf("%d%d",&a,&b);所以问题不是max()若一定要这样,输入时就要加逗号 如下:

用C++,输入两个整数,判断他们的关系(大于,小于,等于)
include<iostream.h> main(){ int i,j;cin>>i;cin>>j;if(i>j){ cout << "第一个大于第二个"<< endl;} else if(i<j){ cout << "第一个小于第二个"<< endl;}else { cout << "第一个等于第二个"<< endl;} }

C++中比较两个数大小的函数,帮我看下哪里不对
{ int max(int x,int y); \/\/对被调用的函数max的声明 int a,b,c; \/\/定义自变量abc为整形 \/\/scanf("%d,%b",&a,&b); \/\/输入变量a b的值 这里有个输入错误d--b scanf("%d,%d",&a,&b); \/\/输入变量a b的值 c=max(a,b);\/\/调用max函数,并将值赋予给c printf("ma...

用c++编一个程序:输入两个数比较这两个数的大小
include<iostream> using namespace std;int main(){ int a,b;cout<<"Please input the number a and b:"<<endl;cin>>a>>b;int i=a>b?a:b;cout<

C++程序,比较两个数的大小,然后输出最大数,求它的平方,问题是,运行...
void main(){ double a,b,c;cout<<"input two numbers:\\n";cin>>a>>b;c=max(a,b);cout<<"the squart of maximum="<<sqrt(c)<<endl;} double max(double x,double y){ if(x>y) \/\/我认为这样比较好 return x;else return y;} 大概意思是:①输入两个数,值分别赋给双精度...

相似回答