结构程序中的struct不会启动

时间:2018-06-19 01:34:40

标签: c

我试图在一个结构程序中创建一个结构,它将找到一个房子,并测量它的建造时间和它的区域。

我收到此错误。

[错误]' izgradnja'没有名为' povrsina'

的成员
#include<stdio.h>
#include<string.h>
typedef struct {
    char drzava[30];
    char grad[30];
    char adresa[50];
    char tip[10];
    int brojsoba;
    int brojradnika;
    struct povrsina {
    int sirina;
    int duzina;
    int povrsinasobe;
};
}izgradnja;
main() {
    int i,n,j;
    printf("Koliko objekata cemo obraditi:");
    scanf("%d",&n);
    izgradnja objekat[n];
        for(i=0;i<n;i++) {
        printf("Unesite drzavu u kojoj je Vasa kuca:");
        gets(objekat[i].drzava);
        printf("Unesite grad u kojoj je Vasa kuca:");
        gets(objekat[i].grad);
        printf("Unesite adresu:");
        gets(objekat[i].adresa);
        printf("Da li gradite kucu ili stan:");
        gets(objekat[i].tip);
        printf("Koliko ima soba?");
        scanf("%d",&objekat[i].brojsoba);
        for(j=0;j<objekat[i].brojsoba;j++) {
            printf("Unesite sirinu i duzinu:");
            scanf("%d%d",&objekat[i].povrsina.sirina,&objekat[i].povrsina.duzina);
            objekat[i].povrsina.povrsinasobe = objekat[i].povrsina.sirina * objekat[i].povrsina.duzina;
        }
        printf("Unesite broj radnika koji radi na kuci:");
        scanf("%d",&objekat[i].brojradnika);
    }
}

1 个答案:

答案 0 :(得分:1)

有几种解决方法,但这应该有效:

typedef struct {
    char drzava[30];
    char grad[30];
    char adresa[50];
    char tip[10];
    int brojsoba;
    int brojradnika;

    struct {
        int sirina;
        int duzina;
        int povrsinasobe;
    } povrsina;

} izgradnja;

或者只是把它分开:

typedef struct {
    int sirina;
    int duzina;
    int povrsinasobe;
} Povrsina;

typedef struct {
    char drzava[30];
    char grad[30];
    char adresa[50];
    char tip[10];
    int brojsoba;
    int brojradnika;
    Povrsina povrsina;
} izgradnja;