对C中的指针和结构感到困惑

时间:2016-05-21 13:51:59

标签: c

 #include <stdio.h>
#include <string.h>
#include <math.h>
typedef struct Datanasc{
        int dia;
        int mes;
        int ano;
    } datanasc;

typedef struct Pessoa{
    char nome[201];
    datanasc datn;
    char genero;
    char pref;
    double nota[40][40];
} pessoa;

typedef struct Aresta{
    pessoa *pont;             
    pessoa *pont2;
    double pesoaresta[50];
} aresta;
int main(){
    int N,i,diaatual,mesatual,anoatual, linha, coluna,media;
    scanf(" %d/%d/%d",&diaatual,&mesatual,&anoatual);
    scanf("%d",&N);

    aresta grafo[40][40];
    pessoa c1[40];
    /*---->*/
 for(linha = 0; linha < N-1 ; linha++ ){
        printf("Entrewi\n");
        for(coluna=0 ; coluna < N; coluna++ ){
            grafo[linha][coluna].pont=&c1[linha];
            grafo[linha][coluna].pont2=&c1[linha+1];
            grafo[linha][coluna].pont->nota[linha][coluna+1];
            grafo[linha][coluna].pont2->nota[coluna+1][linha];
            media=sqrt(grafo[linha][coluna].pont->nota[linha][coluna+1] * grafo[coluna][linha].pont2->nota[coluna+1][linha]);
            printf("media = %lf\n",media);
        }
    }
    return 0;
}

所以,我的问题在/ ---&gt; /在main和typedef部分之后开始。 问题是,我需要创建一个图表。不知怎的,我需要指出学生的成绩,并做一些数学,这将给我一个价值。将指向pessoa结构内的某些东西。     要恢复我的问题,我需要在两个notas之间创建一个arris,但仅限于sqrt(nota[x][y]*nota[y][x])>=5。 当printf(&#34; media&#34;)部分到来时,我的程序停止工作。     我不能使用malloc或递归,只能使用指针和结构。

1 个答案:

答案 0 :(得分:1)

抱歉,仍然不明白你打算做什么。

这两行无效:

        grafo[linha][coluna].pont->nota[linha][coluna+1];
        grafo[linha][coluna].pont2->nota[coluna+1][linha];

其余的似乎是正确的,尽管这两个表不包含任何数据。