| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 306 人关注过本帖
标题:结构体数组输出出错,求大神指教
只看楼主 加入收藏
Lx947154276
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2014-4-6
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:7 
结构体数组输出出错,求大神指教
程序代码:
#include<stdio.h>
#define N 3                /*学生数*/
struct student              /*建立结构体数据类型*/
{
    int num;                /*学号*/
    char name[20];          /*姓名*/
    float score[3];         /*3门课成绩*/
    float sum;              /*总成绩*/
    char grade;             /*等级*/
};
struct student stu[N];               /*定义结构体数组*/

 

int main()
{
  
   
   {
       int i;
       printf("请输入各学生的信息:学号、姓名、三门课成绩:\n");
       for(i=0;i<N;i++)
       {
           scanf("%d%s%f%f%f",&stu[i].num,stu[i].name,
               &stu[i].score[0],&stu[i].score[1],&stu[i].score[2]);    /*输入数据*/
           stu[i].sum=stu[i].score[0]+stu[i].score[1]+stu[i].score[2];    /*求每位同学的总分*/
       }
   }
   int m;
   printf("num\t\tname\tscore1\tscore2\tscore3\tsum\tgrede\n"); /*定义输出函数*/
        for(m=0;m<N;m++)
        {
            printf("%d\t\t%c\t%-8.1f%-8.1f%-8.1f%-8.1f\t",&stu[m].num,
                stu[m].name,&stu[m].score[0],&stu[m].score[1],
                &stu[m].score[2],&stu[m].sum);
            if((m+1)<=N*0.95)
            printf("合格\n");
        else
            printf("不合格\n");
        }
   return 0;
} 

运行结果好多0.000000
搜索更多相关主题的帖子: 结构体 
2014-04-06 12:06
xiaozi2013
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:四川成都
等 级:蒙面侠
威 望:6
帖 子:830
专家分:4331
注 册:2013-12-13
收藏
得分:0 
printf("%d\t\t%c\t%-8.1f%-8.1f%-8.1f%-8.1f\t",&stu[m].num,
                 stu[m].name,&stu[m].score[0],&stu[m].score[1],
                 &stu[m].score[2],&stu[m].sum);




color=#FF0000]&[[/color]去掉试试

--整天敲那些破代码能找着媳妇儿吗。。。---
2014-04-06 12:44
xiaozi2013
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:四川成都
等 级:蒙面侠
威 望:6
帖 子:830
专家分:4331
注 册:2013-12-13
收藏
得分:0 
printf("%d\t\t%c\t%-8.1f%-8.1f%-8.1f%-8.1f\t",&stu[m].num,
                 stu[m].name,&stu[m].score[0],&stu[m].score[1],
                 &stu[m].score[2],&stu[m].sum);




color=#FF0000]&[[/color]去掉试试

--整天敲那些破代码能找着媳妇儿吗。。。---
2014-04-06 12:44
Lx947154276
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2014-4-6
收藏
得分:0 
回复 3楼 xiaozi2013
请说的详细一点,直接在输出函数后面加么?还是其他什么方式,我也觉得问题出在函数输出结构体数据上。
2014-04-06 16:03
ying8501
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:6
帖 子:1092
专家分:1446
注 册:2008-11-24
收藏
得分:10 
#include<stdio.h>
#define N 3                /*学生数*/
struct student              /*建立结构体数据类型*/
{
    int num;                /*学号*/
    char name[20];          /*姓名*/
    float score[3];         /*3门课成绩*/
    float sum;              /*总成绩*/
    char grade;             /*等级*/
};
struct student stu[N];               /*定义结构体数组*/


int main()
{
  
   
   {
       int i;
       printf("请输入各学生的信息:学号、姓名、三门课成绩:\n");
       for(i=0;i<N;i++)
       {
           scanf("%d%s%f%f%f",&stu[i].num,stu[i].name,
               &stu[i].score[0],&stu[i].score[1],&stu[i].score[2]);    /*输入数据*/
           stu[i].sum=stu[i].score[0]+stu[i].score[1]+stu[i].score[2];    /*求每位同学的总分*/
       }
   }
   int m;
   printf("num\t\tname\tscore1\tscore2\tscore3\tsum\tgrede\n"); /*定义输出函数*/
        for(m=0;m<N;m++)
        {
            printf("%d\t\t
%s\t%-8.1f%-8.1f%-8.1f%-8.1f\t",stu[m].num,
                stu[m].name,stu[m].score[0],stu[m].score[1],
                stu[m].score[2],stu[m].sum);    //去掉地址符

            if((m+1)<=N*0.95)// ---没看懂这句的意思。
            printf("合格\n");
        else
            printf("不合格\n");
        }
   return 0;
}



[ 本帖最后由 ying8501 于 2014-4-6 16:15 编辑 ]
2014-04-06 16:12
renxx333
Rank: 2
等 级:论坛游民
帖 子:2
专家分:11
注 册:2014-3-23
收藏
得分:10 
先不要添加符号,看一下我改的整个程序,然后再在里面加-8.1这些东西。
程序代码:
#include<stdio.h>
#define N 3                /*学生数*/
struct student              /*建立结构体数据类型*/
{
    int num;                /*学号*/
    char name[20];          /*姓名*/
    float score[3];         /*3门课成绩*/
    float sum;              /*总成绩*/
    char grade;             /*等级*/
};
struct student stu[N];               /*定义结构体数组*/


int main()
{
   int i,m;
   
   {
      
       printf("请输入各学生的信息:学号、姓名、三门课成绩:\n");
       for(i=0;i<N;i++)
       {
           scanf("%d%s%f%f%f",&stu[i].num,stu[i].name,
               &stu[i].score[0],&stu[i].score[1],&stu[i].score[2]);    /*输入数据*/
           stu[i].sum=stu[i].score[0]+stu[i].score[1]+stu[i].score[2];    /*求每位同学的总分*/
       }
   }
   

        for(m=0;m<N;m++)
        {
            printf("%d,%s,%f,%f,%f,%f",stu[m].num,           //这里的第二个是%s不是%c,错了。
                stu[m].name,stu[m].score[0],stu[m].score[1],
                stu[m].score[2],stu[m].sum);
            if((m+1)<=N*0.95)
            printf("合格\n");
        else
            printf("不合格\n");
        }
   return 0;
} 


先把这个程序跑动,然后再在格式上面修改。
2014-04-06 20:32
Lx947154276
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2014-4-6
收藏
得分:0 
回复 5楼 ying8501
多谢。那句话是希望得到前95%的同学成绩为合格,剩余的为不合格(N为学生人数,可以修改的,便于试验,我先写的3)。还有是不是结构体数组输出的是后都不要加地址?
2014-04-07 10:57
Lx947154276
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2014-4-6
收藏
得分:0 
回复 6楼 renxx333
多谢。成功运行,吸取经验了。
2014-04-07 11:08
快速回复:结构体数组输出出错,求大神指教
数据加载中...
 
   



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

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