| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1177 人关注过本帖
标题:关于返回数组的问题,请大家指教
只看楼主 加入收藏
笨拉登
Rank: 1
等 级:新手上路
帖 子:23
专家分:3
注 册:2008-11-4
结帖率:50%
收藏
 问题点数:0 回复次数:5 
关于返回数组的问题,请大家指教
初学c,编了一个10个数字排序的程序。算法笨拙高手不要笑,一开始倒数第二行是return(grade),编译错误,到网上查了知道数组只能返回地址,就试试加个&,不行,换了*就对了。可是我不明白是为什么,请具体给我讲下,我对指针概念一团糟啊。
#include <stdio.h>
int main()
{
    int order(int [10]);/*function's prototype*/
    int grade[10];
    int i;
    for (i=0;i<10;i++)
    {
    printf("please inter the %dth number(integer)",i+1);
    scanf_s("%d",&grade[i]);
    }

    order(grade);/*call of the function*/
    for (i=0;i<10;i++)
    printf("%d ",grade[i]);
    return 0;
}
int order(int grade[10])/*function's header line*/
{
    int i,j,temp;
    for (j=0;j<9;j++)
    {
       for (i=0;i<9;i++)
        {
            if(grade[i]>grade[i+1])
            {
            temp=grade[i];
            grade[i]=grade[i+1];
            grade[i+1]=temp;
            }
         }
    }
return (*grade);
}
搜索更多相关主题的帖子: 指教 
2008-11-13 23:28
hb0800092
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2008-11-5
收藏
得分:0 
你把int 改成void 就可以不用return返回值了
可能是你定义的是int 型函数返回的值也只能是int型把
grade是数组名就是存放数组首元素地址的前面不加或加&就都不行
加了*好就变成*grade就是grade所指向的变量了是int行了
我想是这样的把  我也是新手 不对的别介意啊
2008-11-14 00:22
wangyinshiwo
Rank: 1
等 级:新手上路
帖 子:75
专家分:0
注 册:2007-11-9
收藏
得分:0 
#include <stdio.h>
void  main()
{
    void order(int grade[10]);/*function's prototype*/
    int grade[10];
    int i;
    for (i=0;i<10;i++)
    {
    printf("please inter the %dth number(integer)",i+1);
    scanf("%d",&grade[i]);
    }

    order(grade);/*call of the function*/
    for (i=0;i<10;i++)
    printf("%d ",grade[i]);
}
void order(int grade[10])/*function's header line*/
{
    int i,j,temp;
    for (j=0;j<9;j++)
    for (i=0;i<9;i++)
    if(grade[i]>grade[i+1])
       {
          temp=grade[i];
          grade[i]=grade[i+1];
          grade[i+1]=temp;
       }
}

抽刀断水水更流,举杯消愁愁更愁。
2008-11-14 09:02
forever74
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:CC
等 级:版主
威 望:58
帖 子:1687
专家分:4253
注 册:2007-12-27
收藏
得分:0 
你在主函数里面并没有接收order的返回值
所以索性把order写成void类型的
order里面不要任何return了

对宇宙最严谨的描述应该就是宇宙其实是不严谨的
2008-11-14 09:11
笨拉登
Rank: 1
等 级:新手上路
帖 子:23
专家分:3
注 册:2008-11-4
收藏
得分:0 
谢谢,改成void后可以了。
2008-11-14 12:13
笨拉登
Rank: 1
等 级:新手上路
帖 子:23
专家分:3
注 册:2008-11-4
收藏
得分:0 
回复 2# 的帖子
我觉得你说的是对的
2008-11-14 12:19
快速回复:关于返回数组的问题,请大家指教
数据加载中...
 
   



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

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