| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2498 人关注过本帖
标题:用结构体指针输出学生平均成绩和姓名 显示error C2100: illegal indirectio ...
只看楼主 加入收藏
poonkitying
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2015-12-23
结帖率:0
收藏
已结贴  问题点数:20 回复次数:4 
用结构体指针输出学生平均成绩和姓名 显示error C2100: illegal indirection为什么啊大神求解
#include<stdio.h>

float aveScore(int a,int b,int c)
{
    float ave;
    ave=(a+b+c)/3.0;
    return ave;
}
void main()
{
    struct student
    {
      long snum[5];
      char name[5];
      int score[3];
      float ave;
    }s[6],*p=s;
    int i;
    printf("学号 姓名 programming database network\n");
    for(i=0;i<6;i++,p++)
    {
       scanf("%d %s %d %d %d",&p->snum,&p->name,&p->score[0],&p->score[1],&p->score[2]);
       *(p->ave)=aveScore(p->score[0],p->score[1],p->score[2]);
    }
    for(i=0;i<6;i++,p++)
    {
        printf("%s %f\n",*(p->name),*(p->ave));
        
    }
   
   
}
搜索更多相关主题的帖子: database network include return 结构体 
2015-12-23 13:18
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:10 
d:\c_source\w12\w12.cpp(26): error C2100: 非法的间接寻址
1>d:\c_source\w12\w12.cpp(30): error C2100: 非法的间接寻址

涉及代码行为:

   *(p->ave)=aveScore(p->score[0],p->score[1],p->score[2]);
   printf("%s %f\n",*(p->name),*(p->ave));

DO IT YOURSELF !
2015-12-23 13:22
poonkitying
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2015-12-23
收藏
得分:0 
回复 2楼 wp231957
怎么改?
2015-12-23 13:23
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
这样试试

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

float aveScore(int a,int b,int c)
{
    float ave;
    ave=(a+b+c)/3.0;
    return ave;
}
void main()
{
    struct student
    {
      long snum[5];
      char name[5];
      int score[3];
      float ave;
    }s[3],*p=s;
    int i;
    printf("学号 姓名 programming database network\n");
    for(i=0;i<3;i++,p++)
    {
       scanf("%d %s %d %d %d",&p->snum,&p->name,&p->score[0],&p->score[1],&p->score[2]);
       p->ave=aveScore(p->score[0],p->score[1],p->score[2]);
    }
    for(i=0;i<3;i++,p++)
    {
        printf("%s %f\n",s[i].name,s[i].ave);
        
    }
    
    
}

DO IT YOURSELF !
2015-12-23 13:53
S13170055715
Rank: 2
等 级:论坛游民
帖 子:4
专家分:17
注 册:2015-12-23
收藏
得分:10 
回复 楼主 poonkitying
#include<stdio.h>
float aveScore(int a,int b,int c)
{
   float ave;
    ave=(a+b+c)/3.0;
    return ave;
}
struct student
    {
      long snum[5];
      char name[5];
      int score[3];
      float ave;
    }s[3],*p=s;
void main()
{
    int i,r;
    printf("请输入要输入的人数(r):"); //每个人的信息在一行输入,几个人就是几行
    scanf("%d",&r);
    printf("请依次输入 :学号 姓名 成绩一 成绩二  成绩三 n");//按回车键输入下一行,共输入三行
    for(i=0;i<r;i++,p++)
    {
       scanf("%d %s %d %d %d",&p->snum,&p->name,&p->score[0],&p->score[1],&p->score[2]);
       p->ave=aveScore(p->score[0],p->score[1],p->score[2]);
    }
    for(i=0;i<r;i++,p++)
    {
        printf("姓名:%s   平均成绩:%fn",s[i].name,p->ave);//s[i].name 为什么不能用p->name,不知道
        
    }
   
   
}
2015-12-24 11:09
快速回复:用结构体指针输出学生平均成绩和姓名 显示error C2100: illegal indir ...
数据加载中...
 
   



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

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