1、首先,定义一个整型数组,保存所有的整数。
2、定义一个自定义函数,判断两个数的大小。自定义函数中,如果两个整数不相同,则判断它们的大小。
3、主函数中,先定义两个整型变量,保存数值的个数和有无相同数值的判断。
4、输入数值的个数,保存在变量n中。输入所有的数值,保存在数组num中。
5、将数组中的所有数值按从小到大的顺序排列,如下图所示。
6、用for循环语句判断每个数值,是否有相同的数。如果一个数有相同的数值,则输出所有相同数,用while语句实现所有数的判断。
#include
using namespace std;
int gethex(char *s) { int r=0;
while ( *s ) {
r*=16;
if ( *s>='0' && *s<='9' ) r+=*s-'0';
else if ( *s>='a' && *s<='f' ) r+=*s-'a'+10;
else if ( *s>='A' && *s<='F' ) r+=*s-'A'+10;
s++;
}
return r;
}
void main() { int i,b,bb,x,y,z; char str[80];
while ( 1 ) {
cin>>str;
i=0; b=-1;
while ( str[i] ) { if ( str[i]=='+' || str[i]=='-' ) { b=i; break; } else i++; }
if ( b>=0 ) {
bb=( str[b]=='+' )?(0):(1); str[b]=0;
x=gethex(str); y=gethex(str+b+1); z=x; z+=( bb )?(-y):(y);
for ( i=0,b=0x1000;i<13;i++,b>>=1 ) cout<<(( x&b )?(1):(0));
cout<<' '<<(( bb )?('-'):('+'))<<' ';
for ( i=0,b=0x1000;i<13;i++,b>>=1 ) cout<<(( y&b )?(1):(0));
cout<<" = "<} else break;
}
}