AC,但是有一个疑问
查看原帖
AC,但是有一个疑问
934423
hrlong楼主2023/2/14 23:33

代码:

#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的三个值发现后一个输出发生了变化。我隐约记得是有一个跟这个有关的知识点,但是想不起来也搜不到,望大佬为萌新解惑,感谢。

2023/2/14 23:33
加载中...