找出不及格课程的学生及学号
#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
注意一下代码的格式
代码格式? #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: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]