这个题目感觉就是排序问题,可是换成字母,感觉就不一样了。折磨了我好几天了,我试过所有逻辑列出来,最后失败了,求解法,思路。最好有代码。谢谢!
声明一个结构体
struct mystruct
{
int number;//数字
char name;//字母
} A,B;
main()
{
if(A.number>B.number) printf("%c>%c",A.name,B.name);
.....
}
你可以试一下。
#include<stdio.h>
int main()
{
char a[3][3];
int i,j;
for(i=0;i<3;i++){
scanf("%s",a[i]);
}
for(i=0;i<3;i++){
for(j=0;j<3;j++){
if(j==i)
continue;
if(a[i][1]==a[j][0]){
//3-i-j为剩下的一项,比较a[3-i-j]的第一个是字母否为 a[i]的第一个,第二个字母是否为 a[j]的第二个,同时满足则成立
if(a[i][0]==a[3-i-j][0] && a[j][1]==a[3-i-j][1]){
printf("%c<%c<%c\n",a[j][1],a[i][1],a[i][0]);
}
else{
printf("This input is not true\n");
}
return 0;
}
}
}
return 0;
}
试一下这个
#include<stdio.h>
int main()
{
char a[3][3];
int i,j;
for(i=0;i<3;i++){
scanf("%s",a[i]);
}
for(i=0;i<3;i++){
for(j=0;j<3;j++){
if(j==i)
continue;
if(a[i][1]==a[j][0]){
//3-i-j为剩下的一项,比较a[3-i-j]的第一个是字母否为 a[i]的第一个,第二个字母是否为 a[j]的第二个,同时满足则成立
if(a[i][0]==a[3-i-j][0] && a[j][1]==a[3-i-j][1]){
printf("%c<%c<%c\n",a[j][1],a[i][1],a[i][0]);
return 0;
}
}
}
}
printf("This input is not true\n");
return 0;
}
#include<stdio.h>
int main()
{
char a[3][3];
int i,j;
for(i=0;i<3;i++){
scanf("%s",a[i]);
}
for(i=0;i<3;i++){
for(j=0;j<3;j++){
if(j==i)
continue;
if(a[i][1]==a[j][0]){
//3-i-j为剩下的一项,比较a[3-i-j]的第一个是字母否为 a[i]的第一个,第二个字母是否为 a[j]的第二个,同时满足则成立
if(a[i][0]==a[3-i-j][0] && a[j][1]==a[3-i-j][1]){
printf("%c<%c<%c\n",a[j][1],a[i][1],a[i][0]);
return 0;
}
}
}
}
printf("This input is not true\n");
return 0;
枚举判断呗,如此数据范围,当然枚举最保险
#include
int main(){
char s[3][2];
while(scanf("%s",s[0])!=EOF){
int ans[6] = {1,1,1,1,1,1},ok = 1,i;
for(i=1;i<3;i++){
scanf("%s",s[i]);
}
for(i=0;ok&&i<3;i++){
if(s[i][0]==s[i][1]){
ok=0;
}
else if(s[i][0]=='A'){
if(s[i][1]=='B'){
ans[2]=0,ans[3]=0,ans[5]=0;
}
else{
ans[3]=0,ans[4]=0,ans[5]=0;
}
}
else if(s[i][0]=='B'){
if(s[i][1]=='A'){
ans[0]=0,ans[1]=0,ans[4]=0;
}
else{
ans[1]=0,ans[4]=0,ans[5]=0;
}
}
else if(s[i][0]=='C'){
if(s[i][1]=='B'){
ans[0]=0,ans[2]=0,ans[3]=0;
}
else{
ans[0]=0,ans[1]=0,ans[2]=0;
}
}
}
if(ok){
int re=-1;
for(int i=0;i<6;i++){
if(ans[i]==1){
if(re==-1){
re=i;
}
else{
ok=0;
break;
}
}
}
if(ok){
if(re==0){
printf("C<B<A\n");
}
else if(re==1){
printf("B<C<A\n");
}
else if(re==2){
printf("C<A<B\n");
}
else if(re==3){
printf("A<C<B\n");
}
else if(re==4){
printf("B<A<C\n");
}
else if(re==5){
printf("A<B<C\n");
}
else{
printf("The input is not true!\n");
}
}
else{
printf("The input is not true!\n");
}
}
else{
printf("The input is not true!\n");
}
}
}