‘壹’ c语言 数字交换的问题
主要的问题在于:你写的这段逻辑,只能当最大或最小数不位于第一或第五位时才能实现数字交换;
否则,拿
1
2
3
4
5为例:1先和最大值5换,得到5
2
3
4
1;然后5再和最小值1换,得到1
2
3
4
5;结果相当于没换;
在拿1
2
5
3
4为例:1先和5换,得到5
2
1
3
4;由于记录最小值的p2还是0(原先1的位置),4再和a[p2]换的话,就是和5换了,而不再是1,所以会得到4
2
1
3
5;
‘贰’ 如何用c语言求输入两个整数a和b,交换他们的位置,然后输出
# include <stdio.h>
int main(void)
{
int a,b,c;
printf("请输入整数a:\n");
scanf("%d",&a);
printf("请输入整数b:\n");
scanf("%d",&b);
printf("你输入的数是a:%d\tb:%d\n",a,b);
c=a;
a=b;
b=c;
printf("它们交换位置后是a:%d/tb:%d\n",a,b);
retrun 0;
}
‘叁’ 在C语言中如何将两个数进行互换
定义 A ,B, C,
把A保存到C
把B保存到A
把C保存到B
这要就OK了!
int a, b , c;
c = a;
a = b;
b = c;
‘肆’ C语言:输入10个整数,并将第一个数字和最后一个交换位置,第二个和倒数第二个交换,以此类推
#include<stdio.h>
#defineN10
intmain()
{
inta[N];
inti,j,tmp;
printf("输入10个整数: ");
for(i=0;i<N;i++)
scanf("%d",a+i);
for(i=0,j=N-1;i<j;i++,j--)
{
tmp=a[i];
a[i]=a[j];
a[j]=tmp;
}
printf("输出数组元素: ");
for(i=0;i<N;i++)
printf("%d",a[i]);
printf(" ");
return0;
}
//示例运行结果
F:c_work>a.exe
输入10个整数:
0123456789
输出数组元素:
9876543210
‘伍’ C语言;如何交换两个数的位置
要下班了,你照着我这个程序改一下吧。
/*22_4:将两个矩阵相加*/
#include <stdio.h>
void add(int x[][4],int y[4][4]) /*不需要返回值,a数组元素已被改变*/
{
int i,j; /*两层循环变量*/
for(i=0;i<4;i++)
for(j=0;j<4;j++)
x[i][j]+=y[i][j];
return;
}
main()
{
int i,j; /*两层循环变量*/
int a[4][4]=
{
{1,2,3,4},
{5,6,7,8},
{1,1,1,1},
{1,1,1,1}
};
int b[4][4]=
{
{1,2,3,4},
{5,6,7,8},
{3,3,3,3},
{3,3,3,3}
};
add(a,b); /*调用函数时如此简单*/
/*输出相加后的矩阵*/
printf("两矩阵相加得:\n");
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
printf("%d ",a[i][j]);
printf("\n");
}
}
这个是我在跟公司师傅学C语言写的一个
‘陆’ C语言交换两个数字的代码
首先要捋顺一下,先看第一段程序。这段程序的目的就是为了将两个变量的数值进行交换。此时要明白指针的使用方法,这里的交换函数是void swap(int &x, int &y),即无返回值的函数,函数传递的参数是int &x和int &y,这两个东西是什么呢?这两个东西是定义的引用,而这个我们就可以理解为是两个用来存储传递进来的参数的地址的变量(这么说可能有点乱,其实就是将调用该函数是时传递进来的变量的地址给这两个参数),所以如果在这个swap函数中对这两个参数操作时,实际上就是对传递进来的那两个变量进行操作。至于你问的关于整型的问题,这个也很好理解,在c语言里地址就是整型的,而这两个变量定义的时候也是int整型的,所以无论是地址还是值都是整型的,而又因为*a和*b是一个指针指向的值,所以*a、*b是整型,而&a、&b是指针的地址,所以也是整型。
接下来看你第二段程序(你自己写的这个):
看程序前请仔细查看关于函数方面的资料,至于你这个return为什么是错的这个问题其实很简单,首先要了解一个函数的定义,定义函数简单的可以分为有返回值和无返回值的,有返回值的定义类似这样
int abc();
float bcd();
如上所示,函数名什么的都好理解,函数名前面的"int"和"float"是指函数返回的类型,即你这个函数在执行完之后需要用return语句返回一个值,而这个返回类型就是指这个返回值的类型。
还有一种是不需要返回值的,即
void abc();
void cde();
这类函数在执行完成后不需在最后添加return语句来返回值,如果添加了也用不了。
而你写的这个函数定义的是
int swap(int x,inty)
这里声明的是一个需要返回整型变量的函数,而这个函数里你的返回值语句return后没有跟任何变量或值,程序不知道你返回的是什么东西,所以会报错,这里一般都会填写return 0;表示程序执行完成。当然这个0也可以换成整型的变量。
最后说一下你这个程序,你这个程序在执行完成后是不会将需要交换的变量a和b的值进行交换的。这个关系到形参和实参的概念,请仔细查看书籍或看一些例子,你这个只是将形参的值交换了,真正的需要交换的值不会改变,也就是说你只是将a和b的两个值复制了一份,然后将复制了的那个交换了,当swap函数完成后又将复制了的那份删除掉了,所以说,不管怎样最初的a和b都没有受到任何影响。
‘柒’ c语言如何编写两个数字数值交换
我们用C语言的时候,经常需要将两个数字交换,那么如何实现呢?下面小编给大家分享一下。
工具/材料
Dev C++
01
首先我们在Dev C++软件中新建一个C语言项目,如下图所示
02
接下来我们在C语言文件中声明两个数字并输出,如下图所示
03
然后用一个中间变量对他们进行交换,如下图所示
04
最后运行编写好的C语言文件,我们就可以看到如下图所示的交换结果了
‘捌’ C语言中怎么利用调用函数来写两行数字互换位置,就是把第一行的数放到第二行,把第二行的数放到第一行
#include<cstdio>
chars1[100000],s2[100000];
intmain()
{
gets(s1),gets(s2);
puts(s2),puts(s1);
return0;
}
‘玖’ 在C语言中如何将两个数进行互换
将两个数进行互换的方法有两种形式:
1、借助中间变量完成,此方法直观,易理解,使用最多
2、不需要中间变量,通过变量身的运算完成交换。
参考代码:
方法1:
int a=2,b=3,t;
t=a; //先将a存储到临时变量t中
a=b; //将b存储到a中
b=t; //将临时变量中的原a值存储到b中
printf("a=%d b=%d\n", a,b );
方法2:
int a=2,b=3,t;
a += b ; //把两数之和存到a中
b= a-b ; //用两数和减去b可得原a,存储到b中
a= a-b ; //因为b现在是原a值,所以,用两数和减去b(原a)可得 原b,存储到a中
此方法,还可以用异或运算来实现,原理相同。
‘拾’ 怎样用C语言把一组数字调动位置
可以根据你的需要选择不同的方法,例如调换两个数的位置,那就直接交换就可以啦,如果是要把i位置的数插入到j位置,就可以用插入法,其他数做下顺序移动。等等。