| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 805 人关注过本帖
标题:还是指向指针的指针
只看楼主 加入收藏
see235959850
Rank: 2
等 级:论坛游民
帖 子:380
专家分:29
注 册:2016-12-21
结帖率:100%
收藏
 问题点数:0 回复次数:5 
还是指向指针的指针
程序代码:
#include<stdio.h>
void scanf_num(int *a[], int n)
{
    int i;
    int *p;
    p = a[0];
    for (i = 0; i < n; i++, p++)
        scanf_s("%d", p);
}

void sort_num(int *a[], int n)
{
    int i, m = 0, h = 0, *t, *v;
    int **p;
    p = a;
    for (i = 0; i < n; i++)
    {
        if (p[m] > p[i])
            m = i;
        if (p[h] < p[i])
            h = i;
    }
    if (m != 0)
    {
        t = p[0];
        p[0] = p[m];
        p[m] = t;
    }
    if (h == 0)
        h = m;
    if (h != n - 1)
    {
        v = p[h];
        p[h] = p[n - 1];
        p[n - 1] = v;
    }
}

void print_num(int *a[], int n)
{
    int i;
    int *p;
    p = a[0];
    for (i = 0; i < n; i++, p++)
        printf("%d%c", *p, i < n - 1 ? ' ' : '\n');
}

int main()
{
    void scanf_num(int *a[], int n);
    void sort_num(int *a[], int n);
    void print_num(int *a[], int n);
    int x[10], *a[10];
    int i;
    for (i = 0; i < 10; i++)
        a[i] = &x[i];
    scanf_num(a, 10);
    sort_num(a, 10);
    print_num(a, 10);
    return 0;
}
2017-01-16 22:29
see235959850
Rank: 2
等 级:论坛游民
帖 子:380
专家分:29
注 册:2016-12-21
收藏
得分:0 
哪里错了
2017-01-16 22:29
see235959850
Rank: 2
等 级:论坛游民
帖 子:380
专家分:29
注 册:2016-12-21
收藏
得分:0 
要求sort_num函数用**p指向指针的指针
2017-01-16 22:46
see235959850
Rank: 2
等 级:论坛游民
帖 子:380
专家分:29
注 册:2016-12-21
收藏
得分:0 
目测好像是这里出错了
程序代码:
for (i = 0; i < n; i++)
{
      if (p[m] > p[i])
           m = i;
      if (p[h] < p[i])
           h = i;

 }



[此贴子已经被作者于2017-1-16 22:48编辑过]

2017-01-16 22:47
炎天
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:桃花岛
等 级:贵宾
威 望:29
帖 子:1218
专家分:4986
注 册:2016-9-15
收藏
得分:0 

for (i = 0; i < n; i++)
{
      if (*p[m] > *p[i])   //比较的是值
           m = i;
      if (*p[h] < *p[i])
           h = i;
 }

早知做人那么辛苦!  当初不应该下凡
2017-01-16 23:01
see235959850
Rank: 2
等 级:论坛游民
帖 子:380
专家分:29
注 册:2016-12-21
收藏
得分:0 
下面都错了,正确的是
程序代码:
#include<stdio.h>
void scanf_num(int *a[], int n)
{
    int i;
    int **p;
    p = a;
    for (i = 0; i < n; i++, p++)
        scanf_s("%d", *p);
}

void sort_num(int *a[], int n)
{
    int i, m = 0, h = 0, t, v;
    int **p;
    p = a;
    for (i = 0; i < n; i++)
    {
        if (*p[m] > *p[i])
            m = i;
        if (*p[h] < *p[i])
            h = i;
    }
    if (m != 0)
    {
        t = *p[0];
        *p[0] = *p[m];
        *p[m] = t;
    }
    if (h == 0)
        h = m;
    if (h != n - 1)
    {
        v = *p[h];
        *p[h] = *p[n - 1];
        *p[n - 1] = v;
    }
}

void print_num(int *a[], int n)
{
    int i;
    int *p;
    p = a[0];
    for (i = 0; i < n; i++, p++)
        printf("%d%c", *p, i < n - 1 ? ' ' : '\n');
}

int main()
{
    void scanf_num(int *a[], int n);
    void sort_num(int *a[], int n);
    void print_num(int *a[], int n);
    int x[10], *a[10];
    int i;
    for (i = 0; i < 10; i++)
        a[i] = &x[i];
    scanf_num(a, 10);
    sort_num(a, 10);
    print_num(a, 10);
    return 0;
}
2017-01-17 08:18
快速回复:还是指向指针的指针
数据加载中...
 
   



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

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