2 mingye1234 mingye1234 于 2016.03.18 11:32 提问

C语言小白提问```求大神

float search(float (*p)[4]){
float *pt = NULL;
for (int i = 0; i < 4; i++) {
if (
(*p + i) < 60) {
pt = *p;
}
}
return pt;
}

int main(int argc, const char * argv[]) {

float score[][4] = {{60,70,80,90},{56,86,97,68},{57,58,98,95}};
float *p,*q;
q = score;
for (int i = 0; i< 3; i++) {
    p = search(q + i);
     printf("不及格成绩为\n");
    if (p == *(q + i)) {   \\ 此处报错,不知为何.为什么  p == *(score + i)  对? 

        for (int j = 0; j < 4; j ++) {
            printf("%f\t", *(p + j));
        }
    }
}



return 0;

}

4个回答

bealing
bealing   Rxr 2016.03.18 13:35

p == *(q + i)类型不一样,要么p == q+i,要么*p == *(q+i)

mingye1234
mingye1234 并不正确啊改成*p == *(q + i)也是不对的
2 年多之前 回复
bealing
bealing   Rxr 2016.03.18 15:16

float (*q)[4];这样声明,才可以q=score
还有
if ( (*p)[i] < 60) {pt = *p;}这样才对
刚没仔细看,你把p\q类型一样,所以我说你p == *(q + i)不对,
这里面牵扯二级指针和数组指针,比较麻烦

mingye1234
mingye1234 再问一下 既然q\p类型一样,为什么*p == *(q + i)就不对了? p == q + i就对了?
2 年多之前 回复
mingye1234
mingye1234 自学的基础不够`谢指教
2 年多之前 回复
mingye1234
mingye1234   2016.03.18 19:00

再问一下 既然q\p类型一样,为什么*p == *(q + i)就不对了? p == q + i就对了?

bealing
bealing   Rxr 2016.03.18 19:33
 #include <stdio.h> 
#include <stdlib.h> 
float * search(float (*p)[4]){
    float *pt = NULL;
    for (int i = 0; i < 4; i++) {
        if ( (*p)[i] < 60) {
            pt = *p;
        }
    }
    return pt;
}
int main(int argc, const char * argv[]) {
float score[][4] = {{60,70,80,90},{56,86,97,68},{57,58,98,95}};
float *p;
float (*q)[4];
q = score;
for (int i = 0; i< 3; i++) {
    p = search(q + i);
    if (p == NULL) 
        continue;
     printf("不及格成绩为\n");
    if (p == *(q + i)) {   

        for (int j = 0; j < 4; j ++) {
            printf("%f\t", *(p + j));
        }
    }
}
return 0;
}
bealing
bealing 其实,很简单,弄清楚指针到底指的是什么就OK了,建议学习一下二位数组和二级指针,不然的话,光靠我解释,你也很难懂
2 年多之前 回复
mingye1234
mingye1234 回复Bealing: 兄弟 能解释的详细点吗?我基础差了点,刚学一个星期,实在有点弄不明白`
2 年多之前 回复
bealing
bealing 回复mingye1234: 你自己定义的p,q是什么类型?
2 年多之前 回复
mingye1234
mingye1234 兄弟! 我知道p == q + i可以 也知道p == *(score + i)也可以,.......只是不知道为什么*p == *(q + i)就不对了????
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
从程序员小白到大神的正确打开方式!
原文地址 一个程序员大神是如何炼成的?突然想到了个问题。于是乎思考了下这个问题感觉很有意思,在上网找了些答案发现了成为一名优秀的程序员必备5个技能。 NO.1 问题分解 编程讲的是如何解决问题。但在你开始写代码之前,你需要清楚如何解决问题。一个好的程序员应该拥有这样的技能,他能将问题分解成子问题,直到每个子问题都可以很轻松地进行解决。不过要找到一个解决问题的方式可
一张C++学习路线图告诉你,从小白到大神你都需要掌握什么技能。
提起c语言,很多人都说c语言属于比较难的编程语言,但是一些大型项目设计高复杂度和高要求的项目的时候,c语言还是有很大优势,例如互联网搜索引擎,高性能科学计算,大型网络游戏服务器等等。那么该如何着手学习c语言呢,我整理了一套系统的学习方案,只要按照这套学习方案进行学习,一定可以学有所成。如果大家对于学习C++有任何问题,学习方法,学习路线,如何学习有效率的问题,可以随时来咨询我,或者缺少系统学习资料...
入门程序员——从小白到大神
新人自传
新手入门,学习java从小白到大神应该从何做起?
编程入门先学什么?关于编程,关于编程的基础语言,想要学习的朋友,一定会多多少少了解一些。像 C、C++、Python和Java四种都是通用的编程语言,而JavaScript和PHP算是Web环境的专用编程语言。但其实,编程的语言有很多种,想要入门编程,要学习的编程语言也很多。在这里我就简单总结下编程入门的一系列学习方法。        上面我们提到,学习编程的语言有很多种,像C、C++、Pyth
【备忘】 2017年5月炼数成金《MySQL DBA从小白到大神实战》视频教程
2017年5月炼数成金《MySQL DBA从小白到大神实战》视频教程
C语言小白
——-C语言是一门面向过程编程的语言 知识点: &运算 与 && 不一样 define 定义常量和定义地址不太一样,定义常量,则常量HELLO的值不可修改 定义地址 *(&x),只要存在变量x,则可以修改变量的值,(只要这个变量所占用的内存空间没有被释放) 比如WORLD=100,WORLD=”hello” if 判断,要知道你的函数哪一
小白软件工程师历程
序言 将自己作为一个无知的海绵,去吸收更多的知识来充实自我。 正文 不知不觉,已经毕业三年,工作三年了。趁着难得空闲时间,对自己的工作好好进行下梳理。 大学毕业,进入一家相对规模不错的公司入职,进入到一个云集了各种大神的部门。还记得刚刚到达时候的各种恐慌,因为周围的同事太强悍,每个人都是那么的优秀,那么的独挡一面。笨鸟先飞,别人能够靠工作效率解决的问题,我只能靠加班去解决,花更多的时间去学
一个优秀的程序员是如何炼成的?(大神、小白通吃的干货,不信你
一个优秀的程序员是如何炼成的?问一下自己这个问题会很有意思。这能让你好好思考一下软件开发的过程。拿它来问一下同学朋友也不错,这能引起一些关于团队如何一起协作开发的很有意思的讨论。我个人认为,成为一名优秀的程序员必需要5个技能。 问题分解   编程讲的是如何解决问题。但在你开始写代码之前,你需要清楚如何解决问题。一个好的程序员应该拥有这样的技能,他能将问题分解成子问题,直到每
从基础小白到业内大神,ps高手的成长之路
他是《ps高手炼成记》丛书作者 网易金云奖获得者 领跑设计创办人 学员60万 …… 他是顾领中 你的最后一个设计老师     现在的顾领中老师,学员累计高达60万,但是一开始让他走上设计之路,纯属是当初填错大学志愿。 成为了设计系新生的顾领中,身在曹营心在汉,心中仍然满是金融、银行、公务员。 但是命运既然选中
代码干货|小白一夜变身前端大神,究竟经历了什么
作为刚刚接触前端的童鞋,对学习的方向可能会感到迷茫,通过阅读者篇文章相信会对你的学习方向有所帮助!