代码:
#include<stdio.h>
int main(){
int a[3];
char b[3];
scanf("%d %d %d",&a[0],&a[1],&a[2]);
for(int i=0;i<2;i++){
for(int j=i+1;j<3;j++){
if(a[i]>=a[j]){
int tem =a[i];
a[i]=a[j];
a[j]=tem;
}
}
}
int x=a[0];
scanf("%s",b);
a[0]=x;
for(int i=0;i<3;i++){
if(b[i]=='A'){
printf("%d ",a[0]);
}
if(b[i]=='B'){
printf("%d ",a[1]);
}
if(b[i]=='C'){
printf("%d ",a[2]);
}
}
return 0;
}
在代码的中间,我用x为a[0]重新赋值了,如果不在这里重新赋值的话,a[0]会变成0,别的项不变,经过萌新的挨个printf测试,我发现是字符串b的输入影响到了a[0]。
我在字符串b的输入前后输出a的三个值发现后一个输出发生了变化。我隐约记得是有一个跟这个有关的知识点,但是想不起来也搜不到,望大佬为萌新解惑,感谢。