代码-菜鸟的函数哪里出了问题?(C语言函数返回指针的题型)

问题描述

菜鸟的函数哪里出了问题?(C语言函数返回指针的题型)

实现功能,一旦某一组里面有一个成绩在line_num以下的,就把这一组的数字都输出。
代码如下,改了好久还是没发现问题出现在哪里。
求教高手指点,非常感谢 >< ~

# include<stdio.h>

int main(){
    float *search(float *(pointer)[3], float line);

    float score[][3]={
        {23, 56, 89},
        {56, 12, 91},
        {81, 73, 80},
        {34, 62, 95}
    };
    float line_num;
    int i;
    float *p_addr;

    printf("input the limit line:
");
    scanf("%f", &line_num);
    p_addr=search(score, line_num);
    printf("the student's scores are listed here:
");
    for(i=0; i<3; i++) printf("%f	", *(p_addr+i));
    putchar('
');

    return 0;
}

float *search(float *(pointer)[4], float line){
    float *p_addr;
    int i, j;

    for(i=0; i<4; i++){
        for(j=0; j<3; j++){
            if(*(*(pointer+i)+j)<line) return p_addr=*(pointer+i);
        }
    }
}

解决方案

好了,帮你改好了,请采纳吧……


#include <stdio.h>
#include <stdlib.h>

float *search(float pointer[][3], float line);

int main() {

    float score[][3] = {
        { 23, 56, 89 },
        { 56, 12, 91 },
        { 81, 73, 80 },
        { 34, 62, 95 }
    };
    float line_num;
    int i;
    float *p_addr;

    printf("input the limit line:
");
    scanf("%f", &line_num);
    p_addr = search(score, line_num);
    printf("the student's scores are listed here:
");
    for (i = 0; i<3; i++) printf("%f	", *(p_addr + i));
    putchar('
');

    return 0;
}

float *search(float pointer[][3], float line) {
    float *p_addr;
    int i, j;

    for (i = 0; i<4; i++) {
        for (j = 0; j<3; j++) {
            if (*(*(pointer + i) + j)<line)
                return p_addr = *(pointer + i);
        }
    }
}

如果输入为60,由于你的输出为浮点型,所以输出是23.000000 56.000000 89.000000

解决方案二:

括号写错 应该把指针符号* ,
括到 内部

解决方案三:

C语言中的函数和指针

解决方案四:

首先你的 float *search(float *(pointer)[3], float line);应该在main函数外声明呀!

时间: 2025-01-01 17:51:54

代码-菜鸟的函数哪里出了问题?(C语言函数返回指针的题型)的相关文章

C/C++中的mem函数和strcopy函数的区别和应用_C 语言

strcpy和memcpy都是标准C库函数,它们有下面的特点. strcpy提供了字符串的复制.即strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符. memcpy提供了一般内存的复制.即memcpy对于需要复制的内容没有限制,因此用途更广. mem系列函数是面试的时候常考的知识点,我们需要熟练掌握这三个函数的原理和代码实现,要能准确无误的写出代码. memcpy.memset和memset三个函数在使用过程中,均需包含以下头文件: //在C中 #include<

javascript-一段复杂的js代码,须从中解出unsuan这个函数,求高手解答

问题描述 一段复杂的js代码,须从中解出unsuan这个函数,求高手解答 请问各位大虾,如何从下面的代码中,解密出 unsuan 这个函数呢?小弟先感激不尽了! window"eval" { oInh5 = function(XsAGnSw3) { return (XsAGnSw3 < oER2 ? '': oInh5(window"parseInt")) + ((XsAGnSw3 = XsAGnSw3 % oER2) > 35 ? window[&qu

奉献出一个封装的curl函数 便于调用(抓数据专用)

这个函数就是封装了curl函数的常用步骤,方便大家抓数据,小偷程序也是用类似的代码,需要的朋友可以参考下   奉献出一个封装的curl函数,便于调用 复制代码 代码如下: function curl($url, $ifpost = 0, $datafields = '', $cookiefile = '', $v = false) { $header = array("Connection: Keep-Alive","Accept: text/html, applicatio

java 某个类的几个对象,这些对象调用类中一个函数,是各自拥有自己的函数代码还是使用同一段代码?

问题描述 1.java 某个类的几个对象,这些对象调用类中一个函数(普通的函数),是各自拥有自己的函数代码还是使用同一段代码?2.java 继承中,子类从父类得到一些普通函数,这些函数的代码,是子类自己独自拥有一份还是和父类使用同一段函数代码.3.第一次发帖,积分什么的不会搞,貌似自己也没有积分,呵呵,大家包涵! 解决方案 引用1.java 某个类的几个对象,这些对象调用类中一个函数(普通的函数),是各自拥有自己的函数代码还是使用同一段代码?这几个对象调用的当然是同一段代码了.jvm中有一个ja

游戏-求大神~帮忙改一下。把这串代码改成函数的方式(问题是:用C语言函数制作石头剪刀布)

问题描述 求大神~帮忙改一下.把这串代码改成函数的方式(问题是:用C语言函数制作石头剪刀布) #include #include #include #include void printMenu(void) { printf("tt -------------------------------------------n"); printf("tt| 石头剪刀布游戏 |n"); printf("tt| ---------------------------

如何写出小而清晰的函数?(JS 版)

本文以 JavaScript 为例,介绍了该如何优化函数,使函数清晰易读,且更加高效稳定. 软件的复杂度一直在持续增长.代码质量对于保证应用的可靠性.易扩展性非常重要. 然而,几乎每一个开发者,包括我自己,在职业生涯中都见过低质量的代码.这东西就是个坑.低质量代码具备以下极具杀伤力的特点: 函数超级长,而且塞满了各种乱七八糟的功能. 函数通常有一些副作用,不仅难以理解,甚至根本没法调试. 含糊的函数.变量命名. 脆弱的代码:一个小的变更,就有可能出乎意料的破坏其他应用组件. 代码覆盖率缺失. 它

奉献出一个封装的curl函数 便于调用(抓数据专用)_php技巧

奉献出一个封装的curl函数,便于调用 复制代码 代码如下: function curl($url, $ifpost = 0, $datafields = '', $cookiefile = '', $v = false) { $header = array("Connection: Keep-Alive","Accept: text/html, application/xhtml+xml, */*", "Pragma: no-cache", &

整理出C#(.net)的常用函数和方法集

函数 1.DateTime 数字型System.DateTime currentTime=new System.DateTime(); 1.1 取当前年月日时分秒 currentTime=System.DateTime.Now; 1.2 取当前年 int 年=currentTime.Year; 1.3 取当前月 int 月=currentTime.Month; 1.4 取当前日 int 日=currentTime.Day; 1.5 取当前时 int 时=currentTime.Hour; 1.6

C++通过自定义函数找出一个整数数组中第二大数的方法

  本文实例讲述了C++通过自定义函数找出一个整数数组中第二大数的方法.分享给大家供大家参考.具体实现方法如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 const int MINNUMBER = -32767 ; //2字节的Int 0x8000-1, //4字节的Int 0x80000000-1 -2147483647 int find_sec_max( int data[] , int count) { int