| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4519 人关注过本帖
标题:调用函数里scanf里用指针,才学c语言,求大神,
只看楼主 加入收藏
张耀元
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2016-12-7
结帖率:100%
收藏
 问题点数:0 回复次数:5 
调用函数里scanf里用指针,才学c语言,求大神,
程序代码:
//最小数与第一个对换,最大数与最后一个对换

/*void inputnumber(int * p_p, int len)//输入len个数
{
    printf("要输入数字的个数:");
    scanf("%d",&len);
    printf("输入%d个数:",len);
    for(int i=0;i<len;i++)
        scanf("%d", p_p++);
}*/


void swapmaxmin(int * p_p,int len)//处理
{
    int p,n;
    for(int i=0,int max=* p_p;i<len;i++)//最大数与最后一个对换
    {
       

        if(* (p_p+i)>= max)
        {   

            max=* (p_p+i);
            n=i;
        }
    }
    p=*(p_p+n);
    *(p_p+n)=*(p_p+len-1);
    *(p_p+len-1)=p;

    for(int j=0,int min=* p_p;j<len;j++)//最小数与第一个对换
    {
        if(* (p_p+j)<min)
        {
            min=* (p_p+j);
            n=j;
        }
    }
    p=*(p_p+n);
    *(p_p+n)= *(p_p);
    *(p_p)=p;
}
void display(int * p_p,int len)//输出
{
    for(int i=0;i<len;i++)
        printf("%d ",* (p_p++));
    putchar('\n');
}

void main()
{
    int p[1024],len;
    int * p_p=p;

    printf("要输入数字的个数:");
    scanf("%d",&len);
    printf("输入%d个数:",len);
    for(int i=0;i<len;i++)
        scanf("%d", &p[i]);

    swapmaxmin(p, len);//调用
    display(p, len);//调用
}
我输入真的只有在main函数里输入,不能在调用函数里。
搜索更多相关主题的帖子: c语言 
2016-12-07 12:39
张耀元
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2016-12-7
收藏
得分:0 
完全不知道为什么要n=i,把n换成i就不行了...

有生之年 欣喜相逢
2016-12-07 12:40
yangfrancis
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:141
帖 子:1510
专家分:7661
注 册:2014-5-19
收藏
得分:0 
回复 2楼 张耀元
那是随时在记录最大值的下标。不能直接用i是因为i要随着for循环的进行而改变值。当循环结束后i只会是最后一个元素的下标。而n停留在最大项那里。
2016-12-07 13:02
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
最小值与第一个值交换,你确定代码没有问题?

图片附件: 游客没有浏览图片的权限,请 登录注册


调用scnaf里面的指针~

程序代码:
#include<stdio.h>
void fun(int a[])
{
    int *p=a;

    while (p-a<10)
        scanf("%d",p++);
}
void print(int a[])
{
    int *p=a;

    while (p-a<10)
        printf("%3d",*p++);

    printf("\n");
}
int  main()
{
    int a[10];

    fun(a);
    print(a);

    return 0;
}

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-12-07 13:30
张耀元
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2016-12-7
收藏
得分:0 
回复 3楼 yangfrancis
这样啊,谢啦。

有生之年 欣喜相逢
2016-12-07 13:36
张耀元
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2016-12-7
收藏
得分:0 
回复 4楼 九转星河
先都换起了的,我再去看一下。

有生之年 欣喜相逢
2016-12-07 13:38
快速回复:调用函数里scanf里用指针,才学c语言,求大神,
数据加载中...
 
   



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

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