永发信息网

为什么数组变量定义放在main函数里面不行?

答案:1  悬赏:80  手机版
解决时间 2021-05-09 20:12
struct zb
{
double x;
double y;
};
void main()
{

int n,i,j,t;
double sum1,sum2,sum3;

struct zb c[1000002];
scanf("%d",&t);
for (j=0;j<t;j++)
{
sum1=sum2=sum3=0;
scanf("%d",&n);
for (i=1;i<n+1;i++)
scanf("%lf %lf",&(c[i].x),&(c[i].y));
c[n+1].x=c[1].x;
c[n+1].y=c[1].y;
for (i=1;i<n+1;i++)
{
sum1+=(c[i].x+c[i+1].x)*(c[i].x*c[i+1].y-c[i+1].x*c[i].y);
sum2+=(c[i].y+c[i+1].y)*(c[i].x*c[i+1].y-c[i+1].x*c[i].y);
sum3+=c[i].x*c[i+1].y-c[i+1].x*c[i].y;
}
c[0].x=sum1/(3*sum3);
c[0].y=sum2/(3*sum3);
printf("%.2lf %.2lf\n",c[0].x,c[0].y);
}
}程序编译通过了但执行时出错
而改成把数组变量定义成全局变量就没问题
struct zb
{
double x;
double y;
};
struct zb c[1000002];
void main()
{

int n,i,j,t;
double sum1,sum2,sum3;

scanf("%d",&t);
for (j=0;j<t;j++)
{
sum1=sum2=sum3=0;
scanf("%d",&n);
for (i=1;i<n+1;i++)
scanf("%lf %lf",&(c[i].x),&(c[i].y));
c[n+1].x=c[1].x;
c[n+1].y=c[1].y;
for (i=1;i<n+1;i++)
{
sum1+=(c[i].x+c[i+1].x)*(c[i].x*c[i+1].y-c[i+1].x*c[i].y);
sum2+=(c[i].y+c[i+1].y)*(c[i].x*c[i+1].y-c[i+1].x*c[i].y);
sum3+=c[i].x*c[i+1].y-c[i+1].x*c[i].y;
}
c[0].x=sum1/(3*sum3);
c[0].y=sum2/(3*sum3);
printf("%.2lf %.2lf\n",c[0].x,c[0].y);
}
最佳答案
俺没环境,不知道出什么错误提示,所以,不能确定到底是什么问题。

这种情况,大多是跟编译器有关。建议看看编译器的定义/说明。
怕麻烦的话,可以试试把数组长度改为100试试。(我主观上怀疑1000002是不是超过了编译器的要求)
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
农历11月17日的阴历是多少号
一个好的得分后卫需要具备的技能
稻福轩米线馆上海道店我想知道这个在什么地方
夸人女生漂亮的句子,夸人的幽默内涵段子
大学中的论文到底怎样写啊?像写议论文吗?
为什么QQ空间进不去了~ 说什么网络不稳定 缓
爱说慌的人.他会改吗?
qq仙侠传哪个职业善于升级呀
宝宝2岁多了,还不会嚼东西怎么办?
除了摩擦,怎么让塑料起静电
卓越用英语怎么说,追求卓越,追求卓越用英语
合肥有什么咖啡厅特别有情调的吗?
当心情不好的时候,该怎么去发泄
把对象当炮灰,对象可不可怜?
父姓周,母姓万,如何起名
推荐资讯
QQ餐厅一天到底可以邀请几个人啊
問問可以加分嗎,給自己
龙永红《概率论与数理统计》第三版习题答案
诺基亚7310C 能用2G 的内存卡吗?会不会对手
姜子牙为何直钩钓鱼?
梦话诛仙有没有连续剧
显卡是不是太差了
现在非常无聊想找个好的游戏玩玩、
牡丹江下小雨
蜀门师傅不在线可报告成绩怎么办
雅姿彩妆好吗
别人给我发的信息我为何没收到?什么原因?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?