关于C语言结构体的定义和使用?

#include<stdio.h>struct{doublea;//宝物的体积doubleb;//宝物的价值doublec;//宝物单位价值}grp[100],l;int... #include<stdio.h>
struct{
double a;//宝物的体积
double b;//宝物的 价值
double c;//宝物单位价值

}grp[100],l;
int main()
{
double volume;// 袋子体积
int numble;//宝物的量
int max;
int t;
int i2=0;
double sum=0;
int flo=1;
scanf("%lf %d",&volume, &numble);
for(int i=0;i<numble;i++){
scanf("%lf %lf",&grp[i].a, &grp[i].b);
grp[i].c=grp[i].b/grp[i].a;//printf("%lf\n",grp[i].c);
}

for(int i1=0;i1<numble-1;i1++){

for(int i4=i1+1;i4<numble;i4++){

if(grp[i1].c<grp[i4].c){
l=grp[i4];
grp[i4]=grp[i1];
grp[i1]=l;
}
}

}
for(int i3=0;i3<numble;i3++){
//scanf("%lf %lf",&grp[i].a, &grp[i].b);
//grp[i].c=grp[i].b/grp[i].a;
//printf("%lf %lf %lf,%lf\n",grp[i3].c,grp[i3].b,grp[i3].a,volume);
}
if(numble==1)sum=grp[0].c*volume;else{

while(flo!=0){
if(grp[i2].a>volume){
sum=sum+grp[i2].c*volume;//printf("%lf\n",sum);
flo=0;
}
else{
if(i2==numble-1){
sum=grp[i2].c*grp[i2].a+sum;flo=0;
}
else{
sum=sum+grp[i2].c*grp[i2].a;
volume=volume-grp[i2].a;
i2++;}
}

} }
printf("%.2lf\n",sum);

}
为什么我的定义成这样也可以?不是应该struct str xx[]{
};的嘛
展开
 我来答
网哲笛果
2017-12-18 · TA获得超过624个赞
知道小有建树答主
回答量:564
采纳率:50%
帮助的人:253万
展开全部

struct str xx[]{}这样的写法是成员变量吧,在定义结构体的时候要用你例子中定义的那个格式。

struct{
    ...
    ...
}a;
追问
我struct {
}str[100];这个是什么?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式