#include<stdio.h>
#include<math.h>
int main()
{
char* ch[4] = { "A","B","C"};
int a, b, c,least,mid,most;
scanf("%d %d %d", &a, &b, &c);
char input1[3] = "";
scanf("%s", input1);
most = max(max(a, b), c);
least = min(min(a, b), c);
mid = a + b + c - most - least;
a = least;
b = mid;
c = most;
if (input1[0] == *ch[0]) {
if (input1[1] == *ch[1]) {
printf("%d %d %d", a, b, c);
}
else if(input1[1] == *ch[2]){
printf("%d %d %d", a, c, b);
}
}
else if (input1[0] == *ch[1]) {
if (input1[1] == *ch[0]) {
printf("%d %d %d", b, a, c);
}
else if (input1[1] == *ch[2]) {
printf("%d %d %d", b, c, a);
}
}
else if (input1[0] == *ch[2]) {
if (input1[1] == *ch[0]) {
printf("%d %d %d", c, a, b);
}
else if (input1[1] == *ch[1]) {
printf("%d %d %d", c, b, a);
}
}
return 0;
}
实在困惑很长时间了
自己VS2022编译数据输入输出都没有问题
就到最后出现一个:
Run-Time Check Failure #2 - Stack around the variable 'input1' was corrupted.
实在搞不懂哪儿出问题了,字符串感觉自己也是半瓶水不满,根本没弄透彻
包括为什么
int main()
{
char *b = "ABC";
if (b == "ABC") {
printf("Yes");
}
else {
printf("No");
}
return 0;
}
输出就是Yes,而
int main()
{
char b[] = "ABC";
if (b == "ABC") {
printf("Yes");
}
else {
printf("No");
}
return 0;
}
输出就是No
如果要是第二种代码形式的话 if语句里b==什么才能使输出为Yes
求大佬解惑,实在感激不尽