标题:指针调用问题
只看楼主
王祖品
Rank: 2
等 级:论坛游民
帖 子:31
专家分:20
注 册:2013-4-21
结帖率:27.27%
 问题点数:0 回复次数:2 
指针调用问题
#include<stdio.h>
struct Student{
    int id;
    char name[10];
    float score[2];
};
void main()
{
    Student students[2][3];
    Student * p;
    p=students;
    int i,j;
    printf("请输入信息:\n");
        for(i=0;i<2;i++)
        {  for(j=0;j<3;j++)
        {
            scanf("%d",&students[i][j].id);
            scanf("%s",&students[i][j].name);
            scanf("%f",&students[i][j].score[0]);
            scanf("%f",&students[i][j].score[1]);
        }}
        
        printf("--------------------------------------输出信息---------------------------------\n");
        for(i=0;i<2;i++)
        {    for(j=0;j<3;j++)
            {
                printf("%d     %s      %f     %f\n",*(*(p+i)+j).id,*(*(p+i)+j).name,*(*(p+i)+j).score[0],*(*(p+i)+j).score[1]);
            }
        }

}
请高手帮忙看一下这段代码有哪些问题!!!
搜索更多相关主题的帖子: name include 
2013-05-10 23:21
shuimu10
Rank: 2
等 级:论坛游民
帖 子:53
专家分:48
注 册:2010-11-19
得分:0 
程序代码:
#include<stdio.h>
typedef struct Student{
    int id;
    char name[10];
    float score[2];
}Student;
void main()
{
    Student students[2][3];
    Student (*p)[3];            ///这里出错了
    p = students;
    int i,j;
    printf("请输入信息:\n");
        for(i=0;i<2;i++)
        {  for(j=0;j<3;j++)
        {
            scanf("%d",&students[i][j].id);
            scanf("%s",students[i][j].name);
            scanf("%f",&students[i][j].score[0]);
            scanf("%f",&students[i][j].score[1]);
        }}
        
        printf("--------------------------------------输出信息---------------------------------\n");
        for(i=0;i<2;i++)
        {    for(j=0;j<3;j++)
            {
                //运算级 结构体的.优先  
                printf("%d     %s      %f     %f\n",p[i][j].id,(*(*(p+i)+j)).name,(*(*(p+i)+j)).score[0],(*(*(p+i)+j)).score[1]);
            }
        }

}
2013-05-11 11:55
q13678986740
Rank: 4
等 级:业余侠客
帖 子:114
专家分:245
注 册:2012-7-7
得分:0 
#include<stdio.h>
struct Student{
    int id;
    char name[10];
    float score[2];
};
void main()
{   
    struct Student students[2][3]; //声明应该是这样
    struct Student (*p)[3];            //声明二维数组指针应该是这样
    int i,j;
    p=students;
    printf("请输入信息:\n");
        for(i=0;i<2;i++)
        {  for(j=0;j<3;j++)
        {
            scanf("%d",&students[i][j].id);
            scanf("%s",&students[i][j].name);
            scanf("%f",&students[i][j].score[0]);
            scanf("%f",&students[i][j].score[1]);
        }}
        
        printf("--------------------------------------输出信息---------------------------------\n");
        for(i=0;i<2;i++)
        {    for(j=0;j<3;j++)
            {
                printf("%d     %s      %f     %f\n",(*(*(p+i)+j)).id,(*(*(p+i)+j)).name,(*(*(p+i)+j)).score[0],(*(*(p+i)+j)).score[1]);
            }        /*  点的运算比*优先,应该加() */
        }
    getch();

}


我也是初学者,改了这些能运行了
2013-05-11 12:06



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-406782-1-1.html




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

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