| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1940 人关注过本帖
标题:为什么调用不了swapan1n2这个函数
只看楼主 加入收藏
陈光星
Rank: 1
等 级:新手上路
帖 子:69
专家分:3
注 册:2017-5-15
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:13 
为什么调用不了swapan1n2这个函数
#include <stdio.h>
void swapan1n2(float array1[],int num);
int main()
{
    float array[5];
    int i,j,k;
    printf("请输入五个同学的成绩\n");
    for(i=0;i<5;i++)
    {
        scanf("%f",&array[i]);
    }
    for(i=0;i<5;i++)
    {
        printf("array[%d]=%f\n",i,array[i]);
    }
    swapan1n2(array,5);
    printf("交换后五个同学的成绩排列为\n");
    for(i=0;i<5;i++)
    {
      printf("array[%d]=%f",i,array[i])    ;
    }
        
   
   
   
    return 0;
}     

    void swapan1n2(float array1[],int num)
    {
        int i,j;
        float max,min,*max1,*min1,*p;
        max=min=array1[0];
        *max1=*min1=array1[0];
        for(i=0;i<num;i++)
        {
            if(max<=*(max1+i))
            max=*(max1+i),max1=max1+i;
            if(*min1>=array1[i])
            min=*(min1+i),min1=min1+i;
        }
        *p=*max1;
        *max1=*min1;
        *min1=*p;
        
    }


      
搜索更多相关主题的帖子: include return 
2017-06-01 16:24
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:20 
好像找不到*的指向~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-06-01 16:29
陈光星
Rank: 1
等 级:新手上路
帖 子:69
专家分:3
注 册:2017-5-15
收藏
得分:0 
就是要交换最大值和最小值的位置
2017-06-01 16:32
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
回复 3楼 陈光星
直接找到数组的最大值和最小值交换就可以了~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-06-01 16:34
陈光星
Rank: 1
等 级:新手上路
帖 子:69
专家分:3
注 册:2017-5-15
收藏
得分:0 
但是我通过调用一个函数来实现
2017-06-01 16:37
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
回复 5楼 陈光星
在函数里面也是可以的~

t=a[max];
a[max]=a[min];
a[min]=t;

这样就可以了~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-06-01 16:38
陈光星
Rank: 1
等 级:新手上路
帖 子:69
专家分:3
注 册:2017-5-15
收藏
得分:0 
不知道代码错在哪里
2017-06-01 16:39
陈光星
Rank: 1
等 级:新手上路
帖 子:69
专家分:3
注 册:2017-5-15
收藏
得分:0 
我知道函数里面可以,但调用一个函数如何实现呢
2017-06-01 16:41
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
回复 8楼 陈光星
一样的~因为array是数组~数组传参传递的是地址值~直接改动数组元素的数据也能在函数外部起作用~直接交换就可以了~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-06-01 18:56
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
float* max1=array;
float* min1=array;
float p=0;

或许这样试试~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-06-01 18:59
快速回复:为什么调用不了swapan1n2这个函数
数据加载中...
 
   



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

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