| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 982 人关注过本帖
标题:求把下面的代码转换成用指针完成
只看楼主 加入收藏
bb102
Rank: 1
等 级:新手上路
帖 子:83
专家分:3
注 册:2016-10-22
结帖率:88.89%
收藏
已结贴  问题点数:10 回复次数:8 
求把下面的代码转换成用指针完成
#include<stdio.h>
void main()
{
    int num[10]={2,1,5,4,8,7,9,7,2,6};
    int i,max=0,min=0,m,n;
    m=num[9];
    n=num[0];
    for(i=0;i<10;i++)
    {
        if(num[i]>num[max])
        {
            max=i;
            num[9]=num[max];
            continue;
        }
        else if(num[i]<num[min])
        {
            min=i;
            num[0]=num[min];
            continue;
        }
    }
    num[max]=m;
    num[min]=n;
    for(i=0;i<10;i++)
        printf("%d ",num[i]);
    putchar('\n');
}
搜索更多相关主题的帖子: continue include 
2016-12-15 21:42
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:5 
即成品~

程序代码:
#include<stdio.h>
void main()
{
    int num[10]={2,1,5,4,8,7,9,7,2,6};
    int max=0,min=0,m,n;
    int *p=NULL;
    m=*(num+9);
    n=*num;
    for(p=num;p<num+10;++p)
    {
        if(*p>*(num+max))
        {
            max=p-num;
            *(num+9)=*(num+max);
            continue;
        }
        else if(*p<*(num+min))
        {
            min=p-num;
            *num=*(num+min);
            continue;
        }
    }
    *(num+max)=m;
    *(num+min)=n;
    for(p=num;p<num+10;++p)
        printf("%d ",*p);
    putchar('\n');
}


[此贴子已经被作者于2016-12-15 23:15编辑过]


[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-12-15 22:18
bb102
Rank: 1
等 级:新手上路
帖 子:83
专家分:3
注 册:2016-10-22
收藏
得分:0 
回复 2楼 九转星河
输出的没有把最大值转到最后面
2016-12-15 22:57
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
回复 3楼 bb102
说是速成的,没有仔细检查 我再改改~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-12-15 23:01
bb102
Rank: 1
等 级:新手上路
帖 子:83
专家分:3
注 册:2016-10-22
收藏
得分:0 
回复 4楼 九转星河
2016-12-15 23:10
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
回复 5楼 bb102
代码已修正,再看看~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-12-15 23:16
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:5 
#include<stdio.h>
void main()
{
    int num[]={2,1,5,4,8,7,9,7,2,6};
    int *p, *max=num, *min=num, n;
    n = sizeof(num)/sizeof(int);
    for (p=num; p-num<n; p++)
        printf("%d ", *p);
    putchar('\n');
    for (p=num; p-num<n; p++)
    {
        if (*p > *max)
            max = p;
        else if (*p < *min)
            min = p;
    }
    if (min != num)
    {
        *min ^= *num;
        *num ^= *min;
        *min ^= *num;
    }
    if (max != num+n-1)
    {
        *max ^= *(num+n-1);
        *(num+n-1) ^= *max;
        *max ^= *(num+n-1);
    }
    for (p=num; p-num<n; p++)
        printf("%d ", *p);
}
2016-12-16 06:51
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
回复 7楼 吹水佬
无意看过资料,发现^是可以连写的~
a^=b^=a^=b;

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-12-16 08:42
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
以下是引用九转星河在2016-12-16 08:42:33的发言:

无意看过资料,发现^是可以连写的~
a^=b^=a^=b;

不好阅读,从右至左,相当于a^=(b^=(a^=b))
    int a=10,b=8,c=6,d=4,e=2;
    a+=b-=c*=d/=e;
    printf("%d %d %d %d %d",a,b,c,d,e);

2016-12-16 10:56
快速回复:求把下面的代码转换成用指针完成
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023361 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved