jmlcyjm @ 2024-09-08 22:37:25
#include <stdio.h>
int main()
{
int num[3],max = 0,min = 100,middle = 0;
char letter[3];
for(int i = 0;i < 3;i++)
{
scanf("%d",&num[i]);
}
scanf("%s",letter);
for(int j = 0;j < 3;j++)
{
if(num[j] >= max)
{
max = num[j];
}
if(num[j] <= min)
{
min = num[j];
}
}
printf("%d %d\n",max,min);
for(int n = 0;n < 3;n++)
{
if(num[n] > min && num[n] < max)
{
middle = num[n];
}
}
printf("%d %d %d\n",max,middle,min);
if(letter[0] == 'A')
{
if(letter[1] == 'B')
{
printf("%d %d %d",min,middle,max);
}
else
{
printf("%d %d %d",min,max,middle);
}
}
if(letter[0] == 'B')
{
if(letter[1] == 'A')
{
printf("%d %d %d",middle,min,max);
}
else
{
printf("%d %d %d",middle,max,min);
}
}
if (letter[0] == 'C')
{
if(letter[1] == 'B')
{
printf("%d %d %d",max,middle,min);
}
else
{
printf("%d %d %d",max,min,middle);
}
}
return 0;
}
by sunhewei @ 2024-09-15 16:33:14
我这边试了一下 是num[0]变成0了 在输入字符之前num[0]还没问题 就是在输入字符之后自动变成0了 我也不知道是怎么回事 因为我常用cin 不常用scanf 所以我建议你可以换成cin试试
by jmlcyjm @ 2024-09-17 11:05:49
@sunhewei 谢谢您的回复,不过我自己搞懂了,letter数组应定义为4个大小以存放结束符,这里应该是letter数组越界导致了num数组的值被覆盖,我将大小改为4后就没问题了。
by sunhewei @ 2024-09-17 20:17:05
谢谢你 让我也又涨了知识