| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 496 人关注过本帖
标题:结果不对 帮帮看
只看楼主 加入收藏
露营地
Rank: 2
来 自:湛江
等 级:论坛游民
帖 子:150
专家分:23
注 册:2015-6-27
结帖率:92.86%
收藏
已结贴  问题点数:10 回复次数:8 
结果不对 帮帮看
#include <stdlib.h>
#include <stdio.h>

void fun(int a[], int n, int *max, int *d)
{
int i;
max=a;
for(i=0;i<n;i++)
if(a[i]>*max)
{
    *max=a[i];
    *d=i;
}
}

void main()
{
int i, x[20], max, d, n=10;
for(i=0;i<n;i++)
{
x[i]=rand()%50;
printf("%4d", x[i]);
}
printf("\n");
fun(x, n, &max, &d);
printf("max=%d, d=%d", max, d);
getch();
}


结果不对  看了半天 看不出哪里出错??
功能是就数组里面数的最大那个和他的下标值

  
搜索更多相关主题的帖子: include 
2015-08-19 18:20
hjx1120
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:李掌柜
等 级:贵宾
威 望:41
帖 子:1314
专家分:6927
注 册:2008-1-3
收藏
得分:2 
#include <stdlib.h>
#include <stdio.h>
void fun(int a[], int n)
{
    int i,d=0;
    int max=a[0];
    for(i=0;i<n;i++)
    if(a[i] > max)
    {
        max=a[i];
        d++;
    }
    printf("max=%d, 下标=%d", max,d);
}

int main(void)
{
    int i, x[20],n=10;
    for(i=0;i<n;i++)
    {
        x[i]=rand()%50;
        printf("%4d", x[i]);
    }
    printf("\n");
    fun(x, n);
    return 0;
}
2015-08-19 18:34
诸葛欧阳
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:流年
等 级:贵宾
威 望:82
帖 子:2790
专家分:14619
注 册:2014-10-16
收藏
得分:0 
对int数组一般不要这么操作,一般是对字符数组或字符串才这样操作

一片落叶掉进了回忆的流年。
2015-08-19 19:40
SaberLion
Rank: 5Rank: 5
等 级:职业侠客
威 望:1
帖 子:85
专家分:348
注 册:2014-1-4
收藏
得分:6 
#include <stdlib.h>
#include <stdio.h>

void fun(int a[], int n, int *max, int *d)
{
int i;
max=a;                            //这一步,子函数中指针max指向的地址被你用a指针的地址覆盖掉了,所以子函数中你根本没有对main函数中的max赋值,当然最后打印出来的是默认值 了 。
                                        // 注释掉就行了。建议子函数和main函数的变量最好不要用相同的符号表示      
for(i=0;i<n;i++)
if(a[i]>*max)
{
    *max=a[i];
    *d=i;
}
}

void main()
{
int i, x[20], max, d, n=10;
for(i=0;i<n;i++)
{
x[i]=rand()%50;
printf("%4d", x[i]);
}
printf("\n");
fun(x, n, &max, &d);
printf("max=%d, d=%d", max, d);
getch();
}

[ 本帖最后由 SaberLion 于 2015-8-20 12:01 编辑 ]
2015-08-20 11:57
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:2 
程序代码:
#include <stdio.h>
#include <stdlib.h>

size_t fun( int s[], size_t n )
{
    size_t maxidx = 0;
    for( size_t i=0; i!=n; ++i )
    {
        if( s[maxidx] < s[i] )
            maxidx = i;
    }
    return maxidx;
}

int main( void )
{
    int x[20];

    const size_t n = sizeof(x)/sizeof(x[0]);
    for( size_t i=0; i!=n; ++i )
    {
        x[i] = rand()%50;
        printf( "%4d", x[i] );
    }
    printf( "\n" );

    size_t maxid = fun( x, n );
    printf( "maxvalue=%d, index=%zu\n", x[maxid], maxid );

    return 0;
}
2015-08-20 12:36
露营地
Rank: 2
来 自:湛江
等 级:论坛游民
帖 子:150
专家分:23
注 册:2015-6-27
收藏
得分:0 
回复 2楼 hjx1120
void fun(int a[], int n, int *max, int *d)  但是 这串不能改变了  这个题目来的  只能在这个函数里花括号里写  

不要不要的。。。
2015-08-20 14:43
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
回复 6楼 露营地
你的代码要实现啥功能呢

DO IT YOURSELF !
2015-08-20 14:46
露营地
Rank: 2
来 自:湛江
等 级:论坛游民
帖 子:150
专家分:23
注 册:2015-6-27
收藏
得分:0 
回复 4楼 SaberLion
谢谢 你是对的

不要不要的。。。
2015-08-20 14:53
露营地
Rank: 2
来 自:湛江
等 级:论坛游民
帖 子:150
专家分:23
注 册:2015-6-27
收藏
得分:0 
回复 7楼 wp231957
功能有写在下面啊

不要不要的。。。
2015-08-20 14:53
快速回复:结果不对 帮帮看
数据加载中...
 
   



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

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