您的位置:首页 > 其它

nyoj-1071 不可以!【水】

2015-08-29 16:21 337 查看

不可以!

时间限制:1000 ms | 内存限制:65535 KB
难度:1

描述

判断:两个数x、y的正负性。

要求:不可以使用比较运算符,即"<",">","<=",">=","==","!="。



输入 有多组数据,每组数据占一行,每一行两个数x,y。

x、y保证在int范围内。

输出 每组数据输出占一行。

如果两个数是一正一负,输出"Signs are opposite"

如果是同为正或同为负,输出"Signs are not opposot"

如果无法确定,输出"Signs can't be sure"

输出不包括引号

样例输入
1 1
-1 1

样例输出
Signs are not opposot
Signs are opposite


题目解析:

判断两数的符号:

1.乘积:两者相乘>0,符号相同,<0相反,两者都不满足时不能确定

2.绝对值:x!=的前提下,x+|x|>0,x为正数,否则是负数

3.字符串:将数据存入数组中,考虑第一个字符‘-’,'0'

所有情况:

1.符号相同:同正,同负

2.符号相反:一正一负

3.不确定:一0一正;一0一负;都为0;

一:运用乘积,两者相乘

要求:不可以使用比较运算符,即"<",">","<=",">=","==","!="。
应该是不能拿x.y与0通过运算符进行直接比较 其他的用到运算符应该没问题 因为下面第一种代码就用到了>,<,但是ac了

以前一直认为“,”等价于&&,今天运行第三个代码时才知道 if(x,y) x可以为0,y不能为0; if(x&&y),x,y都不能为0

1.乘积

ac code:

#include<stdio.h> 
int main() 
{ 
    int x,y; 
    while(~scanf("%d%d",&x,&y)) 
   { 
      if(x*y>0) 
            printf("Signs are not opposot\n"); 
       else if(x*y<0) 
            printf("Signs are opposite\n"); 
       else 
			printf("Signs can't be sure\n"); 
    }  
    return 0; 
}



2 字符串

ac code:

#include<stdio.h> 
#define MAXN 10000 
int main() 
{ 
	char str1[MAXN],str2[MAXN];    
	while(~scanf("%s%s",str1,str2))    
	{ 
		if(str1[0]=='0'||str2[0]=='0') 
			printf("Signs can't be sure\n"); 
		else if(str1[0]=='-'&&str2[0]=='-'||str1[0]!='-'&&str2[0]!='-')            
			printf("Signs are not opposot\n"); 
//		else if(str1[0]||str2[0]) 一正一负 
		else
			printf("Signs are opposite\n");     
	}     
	return 0;  
}


3,绝对值

ac code:

#include<stdio.h>
#include<stdlib.h> 
//#include<math.h> 
int main() 
{    
	int x,y;    
	while(~scanf("%d%d",&x,&y))    
	{        
		if(x&&y) //不能写成if(x,y)因为 他表示y!=0,不表示x,y都不为0      
		{            
			if(x*y+abs(x*y))                
				printf("Signs are not opposot\n");             
			else printf("Signs are opposite\n");        
		} 
       	else 
            printf("Signs can't be sure\n"); 
    } 
    return 0; 
}


第一次提交时没有写头文件stdlib.h,写math.h编译错误

编译错误:

./Source/main.cpp: In function 'int main()':

./Source/main.cpp:24: error: 'abs' was not declared in this scope
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: