精华内容
下载资源
问答
  • C语言交换两个数位置(指针)

    千次阅读 2018-11-20 14:51:41
    //指针--输入两个数,并交换两个数的位置 #include "stdio.h" int main() { //定义 int a,b,t,*p1,*p2; printf("Enter two integer Number:"); scanf("%d,%d",&a,&b); printf("...

    兼容手机端(贴图):

    代码(内附注释):

    //指针--输入两个数,并交换两个数的位置
    #include "stdio.h"
    int main() {
    
        //定义
        int a,b,t,*p1,*p2;
        printf("Enter two integer Number:");
        scanf("%d,%d",&a,&b);
        printf("a=%d,b=%d\n",a,b);
        //将a和b的地址给指针p1,p2
        p1 = &a;
        p2 = &b;
        //交换a,b的位置
        t = *p1;
        *p1 = *p2;
        *p2 = t;
        //输出a和b的Value
        printf("a=%d,b=%d\n",a,b);
    
        return 0;
    }

    效果图:

    大家可以访问我的个人网站:https://www.yykjc.cn  方便大家一起讨论

    展开全文
  • 题看起来很平淡无奇,...2.最大值在第一或者最小值在最后一,我们在交换的时候会不会因为我们的交换而改变原来的顺序,导致我们把错误的数交换了 附上C语言和c++,指针和数组的不同解法,编写不易,可能会有...

    这个题看起来很平淡无奇,甚至觉得有点简单,但是需要考虑的细节还是有几个地方,一不小心就会导致错误

    我们在交换的时候可能没考率到几种特殊情况,比如说:

    1.最大值在第一个位置,最小值在最后一个位置,交换两次就会把值换回来

    2.最大值在第一个或者最小值在最后一个,我们在交换的时候会不会因为我们的交换而改变原来的顺序,导致我们把错误的数交换了

    附上C语言和c++,指针和数组的不同解法,编写不易,可能会有未知bug,欢迎指出和建议。
    #include<stdio.h>
    void input(int *p)
    {
    for(int i=0;i<10;i++)
    scanf("%d",&p[i]);
    }
    void change(int *p)
    {
    int k,max=0,min=0;
    for(int i=0;i<10;i++){
    if(p[i]>p[max])
    max=i;
    if(p[i]<p[min])
    min=i;}
    if(max0&&min9)
    {k=p[max];
    p[max]=p[min];
    p[min]=k;}
    else{
    k=p[max];
    p[max]=p[9];
    p[9]=k;
    k=p[min];
    p[min]=p[0];
    p[0]=k;}}
    void output(int *p)
    {
    for(int i=0;i<10;i++)
    printf("%d ",p[i]);
    }
    int main()
    {
    int a[30];
    input(a);
    change(a);
    output(a);
    }
    在这里插入图片描述然后附上c++源码

    #include
    using namespace std;
    void j(intp);
    void k(int
    p);
    void f(intp);
    int main()
    {
    int a[10];
    j(a);
    k(a);
    f(a);
    return 0;
    }
    void j(int
    p)
    {
    for(int i=0;i<10;i++)
    cin>>(p+i);
    }
    void k(int
    p)
    {
    int n,m,t;
    n=m=0;
    for(int i=1;i<10;i++) if((p+n)>(p+i)) n=i;
    t=p;p=(p+n);(p+n)=t;
    for(int i=1;i<10;i++) if((p+m)<(p+i)) m=i;
    t=(p+9);(p+9)=(p+m);(p+m)=t;
    }
    void f(intp)
    {
    for(int i=0;i<10;i++)
    cout<<
    (p+i)<<’\t’;
    }

    在这里插入图片描述

    展开全文
  • 满意答案DearShana2013.09.16采纳率:42%等级:12已帮助:5622人#... //k的作用是记录要交换位置for(j=i+1;jif(a[j]k=j; //这循环的作用是找出数组第i元素以后最小数据if(k!=i) //如果k不等于i,说明a[i]...
    展开全文
  • C语言实现交换排序

    2021-05-28 18:48:10
    交换排序的思想是:两两比较待排序的关键字,发现两个关键字的顺序不对时候,交换位置,直到没有反序的数字为止。 代码实现: #include <stdio.h> #define N 100 void swapsort(int data[], int m); int ...

    交换排序

    交换排序的思想是:两两比较待排序的关键字,发现两个关键字的顺序不对时候,交换位置,直到没有反序的数字为止。

    代码实现:

    #include <stdio.h>
    #define N 100
    
    void swapsort(int data[], int m);
    
    int main()
    {
        int n, a[N], i;
        printf("输入需排序元素个数(小于100)\n");
        scanf("%d", &n);
        //输入
    
        printf("输入需排序元素\n");
        for(i=0; i<n; i++)
    	{
    		scanf("%d", &a[i]);
    	}
    
    	swapsort(a, n);//sort
    
        for(i=0; i<n; i++)
    	{
    		printf("%d  ", a[i]);
    	}
    
        return 0;
    }
    
    void swapsort(int data[], int m)
    {
    	int i, j, temp;
    	for(i=0; i<m-1; i++)
    	{
    		for(j=i+1; j<m; j++)
    		{
    			if(data[j] < data[i])
    			{
    				temp = data[j];
    				data[j] = data[i];
    				data[i] = temp;
    			}
    		}
    	}
    }
    
    
    展开全文
  • 度度熊为了在他的数字仆人面前展现他的权威,他规定某些数字只能在坐固定的位置上,没有被度度熊限制的数字则可以自由地交换位置。 Input 第一行一整数T,表示T组数据。 每组测试数据将以如下格式从标准...
  • 小易允许在数列上做交换任意两个位置的数值的操作,并且交换操作允许交换多次。但是有些数列通过交换还是不能变成等差数列,小易需要判别一个数列是否能通过交换操作变成等差数列 输入描述: 输入包括两行...
  • 你必须知道的495个C语言问题

    千次下载 热门讨论 2015-05-08 11:09:25
    3.15 我要检查一个数是不是在另外两个数之间,为什么if(abc)不行? 3.16 为什么如下的代码不对?inta=1000,b=1000;longintc=a*b; 3.17 为什么下面的代码总是给出0?doubledegC,degF;degC=5.0/9*(degF-32); ...
  • 找到一个排序规则,每次用两个数进行比较,有两种方法,第一个数在前或第一个数在后,如果第一种情况的排法大于第二种,则进行交换。顺序打印最终数组的元素,即为最小。但要考虑0不能放在第一个位置
  • C语言实验——最值

    2019-04-20 21:52:40
    C语言实验——最值 Time Limit: 1000MS Memory Limit: 65536...请写一个程序,把序列中的最小值与第一个数交换,最大值与最后一个数交换。输出转换好的序列。 Input 输入包括行。 第一行为正整数n(1≤n≤10...
  • C语言练习13

    2019-07-27 19:05:43
    1.调整数组使奇数全部都位于偶数前面。...思路:按顺序取一组两个数字分别求对2的余数,如果前一个数余数为0且后一个数余数不为零则交换两者的位置. 代码实现: #include <stdio.h> int main(){ int a[10]...
  • 《你必须知道的495个C语言问题》

    热门讨论 2010-03-20 16:41:18
    3.15 我要检查一个数是不是在另外两个数之间,为什么if(a b c)不行? 40 3.16 为什么如下的代码不对?int a=1000, b=1000; long int c=a * b; 40 3.17 为什么下面的代码总是给出0?double degC, degF; degC= ...
  • c语言经典案例

    2014-10-30 08:06:57
    实例117 输出两个数中的最大值 156 实例118 判断素数 157 实例119 递归解决年龄问题 158 实例120 递归解决分鱼问题 159 实例121 小数分离 160 实例122 求任意数的n次幂 161 实例123 固定格式输出当前时间 163 实例...
  • 3.15 我要检查一个数是不是在另外两个数之间,为什么if(a b c)不行? 40 3.16 为什么如下的代码不对?int a=1000, b=1000; long int c=a * b; 40 3.17 为什么下面的代码总是给出0?double degC, degF; degC= ...
  • C语言课程训练系统题-一维数组1.创建并输出一个一维数组(含20个元素),数组元素的值分别是下标的3倍多22.输入10个数,找出其中最小和最大的数及其位置3....7.编程实现两个数组中对应该元素值的交换
  • 你必须知道的495个C语言问题(PDF)

    热门讨论 2009-09-15 10:25:47
    3.12 我需要根据条件把一个复杂的表达式赋值给两个变量中的一 个。可以用下边这样的代码吗? ((condition) ? a : b) = complicated expression; . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 目录iii ...
  • 请写一个程序,把序列中的最小值与第一个数交换,最大值与最后一个数交换。输出转换好的序列。 Input 输入包括行。 第一行为正整数n(1≤n≤10)。 第二行为n个正整数组成的序列。 Output 输出转换好的序列。数据...
  • C语言程序设计基础OJ练习题(实验六一维数组)

    万次阅读 多人点赞 2019-01-17 14:03:21
    一、C语言实验——最值 Time Limit: 1000 ms Memory Limit: 65536 KiB ...请写一个程序,把序列中的最小值与第一个数交换,最大值与最后一个数交换。输出转换好的序列。 Input 输入包括行。 第...
  • 请写一个程序,把序列中的最小值与第一个数交换,最大值与最后一个数交换。输出转换好的序列。 Input 输入包括行。 第一行为正整数n(1≤n≤10)。 第二行为n个正整数组成的序列。 Output 输出转换好的序列。数据...
  • C语言实验——最值Time Limit: 1000 ms Memory Limit: 65536 ...请写一个程序,把序列中的最小值与第一个数交换,最大值与最后一个数交换。输出转换好的序列。Input输入包括行。第一行为正整数n(1≤n≤10)。...

空空如也

空空如也

1 2 3 4 5
收藏数 89
精华内容 35
关键字:

c语言输入两个数交换位置

c语言 订阅