| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 8442 人关注过本帖
标题:关于结构体数组作函数参数的问题
只看楼主 加入收藏
chen_chuang
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2012-11-9
结帖率:0
收藏
已结贴  问题点数:20 回复次数:8 
关于结构体数组作函数参数的问题
有一段程序:

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

struct Students
    {
        int num;
        int score;
    };
    
void print_under_sixty(struct Stduent *stds,int t)
{
    int i,count;
    printf("================\n");
    printf("name    score\n");
    for(i=1;i<=t;i++)
    {
        if(stds.score[i] < 60)
        {
            count++;
            printf("%d%10d\n",stds[i].num,stds[i].score);
        }
    }
    printf("the count of under sixty : %d\n",count);
}

void main()
{
    int total = 0,i;
        Students std[30];
    for(i=1;i<30;i++)
    {
        printf("student %d ",i);
        std[i].num = i;
        scanf("%d",&std[i].score);
        if(std[i].score < 0)
            break;
        total++;
    }
    printf("num    score\n");
    for(i=1;i<=total;i++)
    {
        printf("%d%10d\n",std[i].num,std[i].score);
    }
    print_under_sixty(std,total);
}

print_under_sixty里面好多错误,求大神分析
搜索更多相关主题的帖子: count 结构体 
2012-11-09 19:52
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:3 
if(stds.score[i] < 60)

授人以渔,不授人以鱼。
2012-11-09 20:17
我和你心连心
Rank: 1
等 级:新手上路
帖 子:3
专家分:5
注 册:2012-9-23
收藏
得分:3 
刚学这个东西,也不知道对不对!
void print_under_sixty(struct Students *stds,int t)
{
    int i,count=0;
    printf("================\n");
    printf("name    score\n");
    for(i=1;i<=t;i++)
    {
        if(stds[i].score < 60)
        {
            count++;
            printf("%d%10d\n",stds[i].num,stds[i].score);
        }
    }
    printf("the count of under sixty : %d\n",count);
}

void main()
{
    int total = 0,i;
      struct Students std[30];
    for(i=0;i<30;i++)
    {
        printf("student %d ",i);
        std[i].num = i+1;
        scanf("%d",&std[i].score);
        if(std[i].score < 0)
            break;
        total++;
    }
    printf("num    score\n");
    for(i=1;i<=total;i++)
    {
        printf("%d%10d\n",std[i-1].num,std[i-1].score);
    }
    print_under_sixty(std,total);
}
2012-11-09 20:42
李云龙
Rank: 1
等 级:新手上路
帖 子:7
专家分:8
注 册:2012-10-25
收藏
得分:3 
子函数中student写错了,看看下面的程序:
#include <stdio.h>

struct Students
    {
        int num;
        int score;
    };

void print_under_sixty(struct Students *std,int t)
{
    int count=0;
    printf("================\n");
    printf("num      score\n");
    for (int i=0;i<t;i++)
    {
        if((std->score)< 60)
        {
            count++;
            printf("%d%10d\n",std->num,std->score);
        }
        std++;    //结构体数组指针指向下一个
    }  
    printf("the count of under sixty is : %d\n",count);
}

void main()
{
    int total = 0,i;
    struct Students std0[30];
    void print_under_sixty(struct Students *std,int t);
    for(i=0;i<30;i++)
    {
        printf("student%d  ",i);
        std0[i].num = i;
        scanf("%d",&std0[i].score);
        if(std0[i].score== 0)
            break;
        total++;
    }
    printf("num     score\n");
    print_under_sixty(std0,total);
}
2012-11-10 10:29
一个孩子
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:356
专家分:954
注 册:2012-10-1
收藏
得分:3 
程序代码:
#include <stdio.h>
#define N 5     //这里可以换成 你想要的数值
struct Students
    {
        int num;
        int score;
    }stu[N];
   
void print_under_sixty(struct Students *stu,int t)
{
    int i,count=0;
    printf("================\n");
    printf("name    score\n");
    for(i=1;i<=t;i++)
    {
        if(stu[i].score< 60)
        {
            count++;
            printf("%d%10d\n",stu[i].num,stu[i].score);
        }
    }
    printf("the count of under sixty : %d\n",count);
}

void main()
{
    int total = 0;
    int i;
    //struct Students  stu[N];
    for(i=1;i<=N;i++)
    {
        printf("student %d ",i);
        stu[i].num=i;
        scanf("%d",&stu[i].score);
        if(stu[i].score < 0)
            break;
        total++;
    }
    printf("num    score\n");
    for(i=1;i<=total;i++)
    {
        printf("%d%10d\n",stu[i].num,stu[i].score);
    }
    print_under_sixty(stu,total);
}
可以运行,你再看看还有什么不懂得地方吧

重要的不是结果,是求一个结果的过程,哪怕千难万难,当你有想要的结果时,你已走的很远
2012-11-10 11:21
xiaowu88910
Rank: 1
等 级:新手上路
帖 子:13
专家分:9
注 册:2012-10-27
收藏
得分:3 
#include <stdio.h>

struct Students
{
    int num;
    int score;
};

void print_under_sixty(struct Students *stds,int t)
{
    int i,count=0;
    struct Students *p;
    printf("================\n");
    printf("name    score\n");
    for(p=stds+1;p<=stds+t;p++)
    {
        if(p->score < 60)
        {
            count++;
            printf("%d%10d\n",p->num,p->score);
        }
    }
    printf("the count of under sixty : %d\n",count);
}

void main()
{
    int total = 0,i;
    struct Students std[30];    //定义结构变量错误

    for(i=1;i<30;i++)
    {
        printf("student %d ",i);
        std[i].num = i;
        scanf("%d",&std[i].score);
        if(std[i].score < 0)
        {
            break;              //这个将退出循环。这一步怎么想的?
        }
        total++;
    }

    printf("num    score\n");
    for(i=1;i<=total;i++)
    {
        printf("%d%10d\n",std[i].num,std[i].score);
    }
    print_under_sixty(std,total);
 }
2012-11-10 12:50
xiaowu88910
Rank: 1
等 级:新手上路
帖 子:13
专家分:9
注 册:2012-10-27
收藏
得分:0 
#include <stdio.h>

struct Students
{
    int num;
    int score;
};

void print_under_sixty(struct Students *stds,int t)
{
    int i,count=0;
    printf("================\n");
    printf("name    score\n");
    for(i=1;i<=t;i++)
    {
        if(stds[i-1].score < 60)
        {
            count++;
            printf("%d%10d\n",stds[i-1].num,stds[i-1].score);
        }
    }
    printf("the count of under sixty : %d\n",count);
}

void main()
{
    int total = 0,i;
    struct Students std[30];
    for(i=0;i<30;i++)
    {
        printf("student %d ",i);
        std[i].num = i+1;
        scanf("%d",&std[i].score);
        if(std[i].score < 0)
            break;
        total++;
    }
    printf("num    score\n");
    for(i=1;i<=total;i++)
    {
        printf("%d%10d\n",std[i-1].num,std[i-1].score);
    }
    print_under_sixty(std,total);
 }
2012-11-10 12:58
xiaowu88910
Rank: 1
等 级:新手上路
帖 子:13
专家分:9
注 册:2012-10-27
收藏
得分:0 
#include

struct Students
{
    int num;
    int score;
};

void print_under_sixty(struct Students *stds,int t)
{
    int i,count=0;
    printf("================\n");
    printf("name    score\n");
    for(i=1;i<=t;i++)
    {
        if(stds[i-1].score < 60)
        {
            count++;
            printf("%d%10d\n",stds[i-1].num,stds[i-1].score);
        }
    }
    printf("the count of under sixty : %d\n",count);
}

void main()
{
    int total = 0,i;
    struct Students std[30];
    for(i=0;i<30;i++)
    {
        printf("student %d ",i);
        std[i].num = i+1;
        scanf("%d",&std[i].score);
        if(std[i].score < 0)
            break;
        total++;
    }
    printf("num    score\n");
    for(i=1;i<=total;i++)
    {
        printf("%d%10d\n",std[i-1].num,std[i-1].score);
    }
    print_under_sixty(std,total);
 }
2012-11-10 12:59
枫叶飘落
Rank: 2
等 级:论坛游民
帖 子:35
专家分:66
注 册:2012-10-27
收藏
得分:3 
5楼的答案不错哦
2012-11-10 16:34
快速回复:关于结构体数组作函数参数的问题
数据加载中...
 
   



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

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