C语言:结构体数组输入问题

来源:百度知道 编辑:UC知道 时间:2024/05/30 20:35:16
#include<stdio.h>
#include<math.h>
#define pi 3.14159

void main()
{
struct xpoint
{
float x;
float y;
} X[8];
struct ypoint
{
float x;
float y;
} Y[8];
struct zpoint
{
float x;
float y;
} Z[8];
for(i=1;i<8;i++)
{

printf("X[%d].x=",i);
scanf("%f",&X[i].x);
printf("X[%d].y=",i);
scanf("%f",&X[i].y);
printf("Y[%d].x=",i);
scanf("%f",&Y[i].x);
printf("Y[%d].y=",i);
scanf("%f",&Y[i].y);
printf("Z[%d].x=",i);
scanf("%f",&Z[i].x);
printf("Z[%d].y=",i);
scanf("%f\n",&Z[i].y);

}
本人的意思是,把结构体中的数据进行循环从键盘上输入。最后进行依次输出即可。但是上面的程序不能读入,只能进行一次输入。求高人指点!
*****缺少定义等问题,是由于本人疏忽所致,提醒的是。但我们输入时,只可以把X[1].x X[1].y、Y[1].x、Y[1].y

#include<stdio.h>
#include<math.h>
#define pi 3.14159

void main()
{
struct xpoint
{
float x;
float y;
}X[8];
struct ypoint
{
float x;
float y;
} Y[8];
struct zpoint
{
float x;
float y;
} Z[8];
for(int i=1;i<8;i++)
{
printf("X[%d].x=",i);
scanf("%f",&X[i].x);
printf("X[%d].y=",i);
scanf("%f",&X[i].y);
printf("Y[%d].x=",i);
scanf("%f",&Y[i].x);
printf("Y[%d].y=",i);
scanf("%f",&Y[i].y);
printf("Z[%d].x=",i);
scanf("%f",&Z[i].x);
printf("Z[%d].y=",i);
scanf("%f\n",&Z[i].y);
}
}

问题好像是编译器的问题,在程序中加如下语句可解决:float a,*b=&a;
还有你的程序中好像少定义了个int i;

“不能读入,只能进行一次输入”这话矛盾的啊!