C语言,输入两行字符串,相同位置相同大写字母,第一个代表星期,D代表周四,第二个代表14个钟头

#include
#include
int main()
{char A[60],B[60],first,second;
int i=0,number=0;
gets(A);
gets(B);
while(i {if(A[i]==B[i]&&(A[i]='A'))
{number++;
while(number==1&&(A[i]<='G'&&B[i]>='A'))
{first=A[i];
switch(first)
{
case 'A': printf("MON");break;
case 'B': printf("TUE");break;
case 'C': printf("WED");break;
case 'D': printf("THU");break;
case 'E': printf("FRI");break;
case 'F': printf("SAT");break;
case 'G': printf("SUN");break;
}
return 0;
printf(":");
}

while(number==2)
{
if(A[i]<='N'&&B[i]>='A')
{second=A[i];
printf("%d",second-55);
}
if(A[i]<='9'&&B[i]>='0')
{second=A[i];
printf("%d",second-49);
}
}
}
i++;
}
return 0;
}
//C语言,输入两行字符串,相同位置相同大写字母,第一个代表星期,D代表周四,第二个代表14个钟头(0--23点由数字0--9以及大写字母A--E组成),输入(3485djDkxh4hhGE 2984akDfkkkkggEdsb)求大神指教,能输出THU,后面就不行了,不能输出14

把第二个和第三while都改为if判断,把第一个return 0;删除。
原因:在第二个和第三个while循环里面i的值根本就没有变化,所以不要用while判断。在第二个while里面return 0;了就相当于main函数结束了,所以也需要删除。

程序写的有问题吧 应该会编译错误

小伙子可以嘛,加密啊。
while(i {if(A[i]==B[i]&&(A[i]='A'))//这句有问题吧
你在退出循环的时候要用break,别用return。你一return函数就结束了。
你要是想用return就把处理操作提取出来作为一个函数,别放在main函数里面。

下面这句话根本不可能编译通过啊?
while(i {if(A[i]==B[i]&&(A[i]='A'))

#include
#include
int main()
{char A[60],B[60],first,second;
int i=0,number=0;
gets(A);
gets(B);
while(i {if(A[i]==B[i]&&(A[i]='A'))
{number++;
while(number==1&&(A[i]<='G'&&B[i]>='A'))
{first=A[i];
switch(first)
{
case 'A': printf("MON");break;
case 'B': printf("TUE");break;
case 'C': printf("WED");break;
case 'D': printf("THU");break;
case 'E': printf("FRI");break;
case 'F': printf("SAT");break;
case 'G': printf("SUN");break;
}
return 0;
printf(":");
}

while(number==2)
{
if(A[i]<='N'&&B[i]>='A')
{second=A[i];
printf("%d",second-55);
}
if(A[i]<='9'&&B[i]>='0')
{second=A[i];
printf("%d",second-49);
}
}
}
i++;
}
return 0;
}

这是源代码,为什么好好的代码复制粘贴就有问题?图片说明