| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1531 人关注过本帖
标题:动态结构体和函数的问题
只看楼主 加入收藏
李小粹
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2015-9-23
结帖率:0
收藏
已结贴  问题点数:20 回复次数:3 
动态结构体和函数的问题
搞了好几天也没搞明白函数的参数要怎么设定。

程序代码:
#include <stdio.h>
#include <stdlib.h>

void k((*pArr[0]).score, int len);

struct Student
{
    int age;
    float score;
    char name[100];
};

int main (void)
{
    int len; 
    struct Student * pArr;
    int i;
    int j;

    k(&pArr[0].score, len);

    printf("请输入学生个数:\n");
    printf("amount=");
    scanf_s("%d", &len);
    pArr = (struct Student *)malloc(len * sizeof(struct Student));

    //输入
    for (i = 0; i < len; i++)
    {
        printf("请输入第%d个学生的信息:\n", i+1);
        printf("age = ");
        scanf_s("%d", &pArr[i].age);

        printf("name = ");
        scanf_s("%s", pArr[i].name, 10); 
        /*
        1.name是数组名,本身就已经是数组首元素的地址,所以pArri[i].name不能写成&pArr[i].name        
        2.由于scanf_s的防溢出机制,所以这个地方要加上字符位数,但此特性只有微软实行,所以可移植性会降低。
            */
        printf("score =");
        scanf_s("%f", &pArr[i].score);
    }

    // 输出
    printf("你输入的信息是:\n\n\n");
    for (i = 0; i < len; ++i)
    {
        printf("第%d个学生的信息是:\n", i + 1);
        printf("age = %d\n", pArr[i].age);
        printf("name = %s\n", pArr[i].name);
        printf("score =%f\n", pArr[i].score);
    }

    return 0;
}

void k((*pArr[0]).score, int len;)
{
    struct Student t;
    int i;

    for (i = 0; i < len - 1; i++)
    {
        if (pArr[i].score > pArr[i - 1].score)
        {
            t = pArr[i];
            pArr[i] = pArr[i - 1];
            pArr[i - 1] = t;
        }
    }
}
搜索更多相关主题的帖子: color 结构体 动态 
2016-04-16 16:35
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:7 
void k(struct Student* pArr, int len);  //如此写,调用的时候:k(pArr,len)
//此外使用此函数的地方应该放在输入学生信息之后用
//你的排序方法不能正确地从大到小或者从小到大排序

   唯实惟新 至诚致志
2016-04-17 09:50
cfd1994
Rank: 2
等 级:论坛游民
帖 子:5
专家分:29
注 册:2016-4-17
收藏
得分:7 
void k (Struct Student *p_s, int len);

你的程序内存泄漏了,malloc之后还要free
2016-04-17 17:45
未来大仙
Rank: 6Rank: 6
来 自:黑窟窿
等 级:侠之大者
威 望:4
帖 子:263
专家分:491
注 册:2015-6-20
收藏
得分:7 
如果实在不知道参数怎么设置的话,就不要参数了,直接在函数内部直接输入数据

好好学习,天天向上!
2016-04-17 22:46
快速回复:动态结构体和函数的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021865 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved