吴铭小猪 发表于 2020-3-1 22:30:02

找出不及格课程的学生及学号


#include <stdio.h>

int *search(int (*p));

void main()
{
        int score[] = {{60,81,52,53},{64,85,86,77},{68,89,90,81}};
        int *p;
        p = search(score);
        printf("不及格学生的序号为:%d\n",(p-score)/sizeof(p));
}

int *search(int (*p))
{
        int *pt;
        int i,j;
        for(i = 0;i < 3;i++)
        {
                for(j = 0;j < 4;j++)
                {
                        if(*(*(p+i)+j) < 60)
                        {
                                pt = *(p + i);
                        }
                }
        }
        return pt;
}

莫的感情的路人 发表于 2020-3-2 21:37:19

注意一下代码的格式

吴铭小猪 发表于 2020-3-6 15:32:09

莫的感情的路人 发表于 2020-3-2 21:37
注意一下代码的格式

代码格式?

17349801063 发表于 2020-5-22 18:02:16

#include<stdio.h>
extern void *search(double(*p));


void main()
{
        int i, j;
        double (*p);
        double a = { {88,58,96,36},{76,81,36,94},{25,38,67,91},{68,81,32,20} };
        search(a);
        p = a;
        for (i = 0; i < 4; i++)
        {
                for (j = 0; j < 4; j++)
                {
                        if (*(*(p+i)+j)< 60&& *(*(p + i) + j) >0)
                        {
                                printf("No.%d%d score %lf is failed\n", i+1, j+1, *(*(p + i) + j));
                                continue;
                        }
                }
        }
}



voidsearch(double (*p))
{
        int i, j;
        double (*s) ,b= {0};
        s = b;
        for (i = 0; i < 4; i++)
        {
                for (j = 0; j < 4; j++)
                {
                        if (*(*(p+i)+j)< 60)
                        {
                                *(*(s+i)+j)= *(*(p + i) + j);

                        }
                        *(*(p + i) + j) = *(*(s + i) + j);
                }
        }
       
}

lilingjie 发表于 2022-1-22 00:49:53

本帖最后由 lilingjie 于 2022-1-22 00:51 编辑

#include "stdio.h"

int search(double (*pointer),int m);

int main(){
    //score数组里的成绩是乱打的,所以我的不及格分数定了20
    double score[] = {{122.0,23.0,456.0,42.0},
                         {12.0,56.0,13.0,321.0},
                         {231.0,545.0,31.0,23.0},
                         {123.0,156.0,12.0,31.0},
                         {231.0,51.0,23.0,13.0}};

    for(int i = 0 ;i <5 ; i++){
      //search函数会传回来一个值,为0或为1,为1就证明不及格,打印出来。
      if(search(score,i)){
            printf("Students with serial number %d fail\n",i);
      }
    }
    return 0;
}
int search(double (*pointer),int m){
    //j是用来循环出4科成绩进行判断是否低于20(不及格),l用来传真假,低于20,就给l赋值1,1的意思就是这组成绩里有不及格的意思
    int j,l = 0;
    for ( j = 0; j < 4; ++j) {
      double z = *(*(pointer+m)+j);
      if(z<20){
            l = 1;
      }
    }
    return l;
}

不知道怎么用指针函数返回指针来判断
页: [1]
查看完整版本: 找出不及格课程的学生及学号