| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 366 人关注过本帖
标题:二维数组指针,大家帮忙看看,什么地方有问题.
只看楼主 加入收藏
mumu_taq
Rank: 2
等 级:论坛游民
帖 子:10
专家分:10
注 册:2009-8-30
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:3 
二维数组指针,大家帮忙看看,什么地方有问题.
三个同学的四门成绩,输出有不及格成绩的同学的四门成绩。
#include<stdio.h>
main()
{
    float *search(float (*p1)[4]);
    float score[][4]={{60,70,80,90},{56,89,67,88},{34,78,90,66}};
    int i,j;
    float *p2;
    for(i=0;i<3;i++)
    {
        p2=search(score+i);
        for(j=0;j<4;j++)
            printf("%6.2f",*(p2+j));
        printf("\n");
    }
}
float *search(float (*p1)[4])
{
    int i;
    for(i=0;i<4;i++)
        {
            if(*(*p1+i)<60)
            {
                return(p1);
                break;
            }
        }
}
搜索更多相关主题的帖子: 指针 
2009-09-14 13:26
atom_09
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:92
专家分:141
注 册:2009-8-24
收藏
得分:10 
for(i=0;i<3;i++)
    {
        p2=search(score+i);
        if(p2!=NULL)
        {
         for(j=0;j<4;j++)
            printf("%6.2f",*(p2+j));
            printf("\n");
        }
}
float *search(float (*p1)[4])
{
    int i;
    for(i=0;i<4;i++)
        {
            if(*(*p1+i)<60)
            {
                return(*p1);
                break;
            }
            else
               return NULL;
        }
}

2009-09-14 15:04
mumu_taq
Rank: 2
等 级:论坛游民
帖 子:10
专家分:10
注 册:2009-8-30
收藏
得分:0 
回复 2楼 atom_09
为什么这个一定要有一个返回值了?还有为什么该是return(*p1),而不是return(p1),p1加*后不是代表的指向的值,不是地址啊。
2009-09-14 15:55
atom_09
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:92
专家分:141
注 册:2009-8-24
收藏
得分:10 
形参为float (*p1)[4]  那么p就是一个指向含有4个浮点元素数组的指针变量,
p的类型为 float(*)[] 其指向的类型为float[]
那么*p的类型为 float*
而你函数 float *search(float (*p1)[4])  search()的返回值类型为float()
如果是 return p 那么类型不一致。


再次 你定义*p2 但是未对其初始化 你在p2=search(score+i);之后 如果学生的成绩全部几个那么p2指向什么呢?什么都不指向 因为没有给它返回一个值
所以你之前的程序运行不了 就是因为是个原因

2009-09-14 16:07
快速回复:二维数组指针,大家帮忙看看,什么地方有问题.
数据加载中...
 
   



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

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