| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 465 人关注过本帖
标题:帮忙看哪出问题了
只看楼主 加入收藏
xiedalian
Rank: 1
等 级:新手上路
帖 子:9
专家分:4
注 册:2011-6-14
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:5 
帮忙看哪出问题了
#include<stdio.h>
struct student
{int id;
    char name[10];
    int score[2];};

void main()
{     struct student students[2][3];
    struct student **pp;
    int i;
    printf("采取Student **pp方法来输入输出六个学生的信息\n");
    printf("请输入六个学生的学号姓名两门成绩,中间以空格分开\n");
    pp=&students;
for(i=0;i<2;i++)
{scanf("%d %s %d %d",&(**pp).id,&(*pp).name,&(**pp).score[0],&(**pp).score[1]);
pp++;}
printf("请输出刚才输入的的结果\n");
for(i=0;i<2;i++)
{ printf("%d %s %d %d\n",(**pp).id,(**pp).name,(**pp).score[0],(**pp).score[1]);
pp++;}
}
搜索更多相关主题的帖子: include 
2011-06-27 21:45
loveshuang
Rank: 9Rank: 9Rank: 9
来 自:湖北武汉
等 级:蜘蛛侠
帖 子:270
专家分:1198
注 册:2010-11-14
收藏
得分:7 
      pp=&students;//这个有错误,students是你定义的一个二维数组,它本身就是这个数组的首地址,不过它是一个指向3个int型大小的数组的指针,不能把它直接赋值给二维指针,struct student (*pp)[3];//应该这么定义指针指向那个二维数组。这个就是行指针。楼主可以查查资料看看。

2011-06-27 23:02
loveshuang
Rank: 9Rank: 9Rank: 9
来 自:湖北武汉
等 级:蜘蛛侠
帖 子:270
专家分:1198
注 册:2010-11-14
收藏
得分:0 
       说错了一点:是指向3个struct student大小的数组。
2011-06-27 23:03
sufei1234
Rank: 2
来 自:湖南长沙
等 级:论坛游民
帖 子:7
专家分:29
注 册:2011-5-8
收藏
得分:7 
你在pp++时 只有两次 也不可能出现六次输入,输出    再者  你的后面输出的pp值已经不是students的首地址了
2011-06-27 23:12
h_mastuade
Rank: 2
等 级:论坛游民
帖 子:21
专家分:86
注 册:2011-6-28
收藏
得分:7 
指针概念没理解清楚...二维数组名相当于指向包含若干个该元素的指针的指针
2011-06-28 00:37
xiedalian
Rank: 1
等 级:新手上路
帖 子:9
专家分:4
注 册:2011-6-14
收藏
得分:0 
怎么改啊  就用二级指针来做
2011-06-28 10:52
快速回复:帮忙看哪出问题了
数据加载中...
 
   



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

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