C语言3#3二维数组行和列互换
发布时间:2025-05-13 11:30:48 发布人:远客网络
一、C语言3*3二维数组行和列互换
1、首先,你的程序逻辑有问题,在交换的时候,所有以对角线为中心的对称元素交换了两次,相当于没有交换;所以如果换成a[i][j]输出的话,结果与没有交换前的一样。即使,你把中间交换元素的那部分代码删去,最后用a[j][i],输出的结果感觉是交换了,其实在内存中(数组中)其实并没有交换。
2、我帮你改正后的代码如下,改正过的地方前边已做注释:
3、 printf("%d",a[i][j]);//这句为什么是a[j][i],而不是a[i][j];
二、c语言3个数比大小,顺序输出
{float a,b,c,t;//声明部份,定义变量,浮点
printf("Enter a,b,c:");//接收屏幕格式输入
scanf("%f,%f,%f",&a,&b,&c);//输入变量a、b、c的值
if(a<b){t=a;a=b;b=t;}//比较a和b的值,如果a<b,则a和b的值互换
if(a<c){t=a;a=c;c=t;}//比较a和c的值,如果a<c,则a和c的值互换
if(b<c){t=b;b=c;c=t;}//比较b和c的值,如果b<c,则b和c的值互换
printf("%5.2f\n%5.2f\n%5.2f\n",a,b,c);//输出a、b、c的值
======================================================
本例程是输入3个数字,再按大到小排序
当a<b时,则中间变量t=a,再将b的值赋给a,再将t的值赋给a
这样就完成了一个a和b的值互换。
printf("%5.2f\n%5.2f\n%5.2f\n",a,b,c);
其中%5.2f是指输入格式按_____.__输入出浮点格式的数。
三、c语言 把三个整数俺从大到小的顺序输出怎么编程
1、思路:求三个数x,y,z的大小顺序,可以先比较x和y的大小,把大值赋值x,小值赋值给y,接着比较x和z,把大值赋值x,小值赋值给z,则x为最大值,最后比较y和z的大小,把大值赋值给y,小值赋值给z,则z为最小值,x,y,z就是从大到小的顺序。
2、 scanf("%d%d%d",&x,&y,&z);
3、 t=x;//借助变量t,将x,y互换,此时x就是最小值,后面原理相同
4、 if(x<z)//第二次互换后x是最小的(或最小之一)
5、 printf("排序后为:%d%d%d\n",x,y,z);