【发布时间】:2015-08-14 01:58:21
【问题描述】:
我正在学习如何正确编写结构。但我不习惯修理结构。我想要的只是代码错误(对于结构)的含义以及如何修复它。它类似于数组吗?我知道代码没有输入,但我需要的帮助只是修复由结构引起的错误。
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<limits.h>
#define MAX_POINTS 100
#define MAX_POLYGONS 100
typedef struct{
int polyid[MAX_POINTS];
int npoints[MAX_POINTS];
double x[MAX_POINTS];
//Stage1
double y[MAX_POINTS];
double perimeter;
double eccentricity;
double area;
} Polygon;
int main(int argc, char *argv[]) {
Polygon Total_poly[MAX_POLYGONS];
int count=0;
int i,j,k,l;
printf("Stage 1");
printf("=====");
while(scanf("%d %d",&Total_poly[count].polyid,&Total_poly[count].npoints)==2){
printf("First Polygon %d",Total_poly[count].polyid);
printf("x_val y_val");
for(i=0;i<Total_poly[count].npoints;i++){
while(scanf("%lf %lf",&Total_poly[count].x[i],
&Total_poly[count].y[i])==2){
printf("%d %d",Total_poly[count].x[i],
Total_poly[count].y[i]);
}
}
}
//Stage2
//Stage3
return 0;
}
谢谢大家!
【问题讨论】:
-
我认为你需要重新定义你的结构。里面的数组太多了。见ideone.com/YOSjYt
-
结构数组对于堆栈变量来说是相当多的。建议使用
malloc获取内存。