美文网首页
2019-05-08 不知道说什么好

2019-05-08 不知道说什么好

作者: 李三风 | 来源:发表于2019-05-08 23:13 被阅读0次

今天拿我可爱的裸亮写的代码鉴赏一下八~:

#include <stdio.h>
#include <stdlib.h>
int* ave(int*);
void find(int*);
int main(void) {
    int a[3][4]= {{80,90,100,66},{60,50,40,59},{46,99,60,59}};
    int *p,*x;
    p=ave((int*)a);                                         //把表打成了排——lph注
    printf("平均分分别为:%d %d %d\n",*p,*(p+1),*(p+2));
    printf("不及格的:\n");
    find((int*)a);
    return 0;
    }
int *ave(int *p) {
    int *a;
    a=(int *)malloc(3*sizeof(int));
    for (int i=0; i<3; i++) {
        a[i]=(*(p+i*4)+*(p+i*4+1)+*(p+i*4+2)+*(p+i*4+3))/4;
        }
    return a;
    }
void find(int *p) {
    int stu=0,num=0;
    for (int i=0; i<3; i++) {
        for (int j=0; j<4; j++)
            if(*(p+i*4+j)<60)
                num++;
        if(num)
            printf("Stu:%d,SubNum:%d\n",i+1,num);
        num=0;
        }
    }

亮点鉴赏

  • 在函数ave中,如果没有a=(int )malloc(3sizeof(int));这句话而直接返回一个a,那么程序就会出现bug并提示编译警告,这是因为如果没有这句话,那么子函数会在运行结束后自行回收内存,那么就会出现不可预料的bug,而如果有malloc申请内存后,内存将一直保留,直到用free清除后。malloc函数包含在stdlib.h里面。
    • 之所以会需要a[i]=((p+i4)+(p+i4+1)+(p+i4+2)+(p+i4+3))/4;,这是数组的一种表达形式,因为他在主函数里这句话p=ave((int*)a);已经把数组转化为一维的了,就需要这样靠加4来往前推进。

相关文章

  • 2019-05-08 不知道说什么好

    今天拿我可爱的裸亮写的代码鉴赏一下八~: 亮点鉴赏 在函数ave中,如果没有a=(int )malloc(3siz...

  • 2018年9月9日晴

    不知道说什么好

  • 不知道说什么好

    早上,手机一打开,进来妈妈的电话,我的心拎到了嗓子眼。 爸妈虽然养了我们四个孩子,但是现在他们是留守老人。今年他们...

  • 不知道说什么好

    前几天,我出去玩,气温真够低的,心情慢慢变得比气温还低。强忍沮丧回到家,好想放松自己来“穷途之哭” 想想这么大人了...

  • 不知道说什么好

    下雪了吗? 阿呆在发呆~ 若我没能成为画家 那是因为 我懒得画成画家的样子 谁都不要拦我 我要画成自己的样子 最爱...

  • 不知道说什么好

    原本紧绷的情绪就由得像溃堤洪水排山倒海般一泻千里不可收拾!当然说不可收拾言过其实。熟知自己绝不做为难自己之事、那么...

  • 不知道说什么好

    生病的时候,如果有人问:什么毛病是你觉得最难过的,那么你的回答多半与你正承受的有关 很难受 想吐吐不出来 催吐 如...

  • 不知道说什么好

    有时候会很累,累的不知道如何走下去。 可是我想开始日更,虽然没有人看,我不想放弃

  • 不知道说什么好

    em……昨天看了下吾王不灭,发现了几个漏洞,就有个想法,把吾王重新写一遍,但不确定改了以后会被当场暴毙…… 同意的...

  • 不知道说什么好

    侄女呆了10天,先觉得是负担,后来不舍,娘家人从来没有呆这么久的,而且还是侄女千里遥远的来广东。 听儿子说她借钱,...

网友评论

      本文标题:2019-05-08 不知道说什么好

      本文链接:https://www.haomeiwen.com/subject/jimboqtx.html