gpt4 book ai didi

c - 如何打印和扫描结构

转载 作者:行者123 更新时间:2023-11-30 15:19:36 25 4
gpt4 key购买 nike

我正在学习如何正确编写结构。但我不习惯修复结构。我想要的只是代码错误(对于结构)的含义以及如何修复它。是不是和数组类似?我知道代码没有输入,但我需要的帮助只是修复结构引起的错误。

#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;

}

谢谢大家!

最佳答案

Polygon Total_poly[MAX_POLYGONS]; 使用超过 240 KB 的堆栈空间。它可能会导致某些系统出现问题。您可能应该将此数组设置为全局数组或使用 malloc() 分配它。

这里有一个错误:

printf("%d     %d",Total_poly[count].x[i],
Total_poly[count].y[i]);

您使用%d,但传递double值作为参数。您应该使用 %e%f%g

您应该配置编译器以生成有用的警告消息,以防止出现此类错误。 gcc -Wall -W -Werror 是一个好的开始。

关于c - 如何打印和扫描结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30559430/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com