运行C程序时输出未显示

时间:2018-09-29 14:53:30

标签: c arrays pointers typedef

早上好,我有一个程序应该以特定顺序显示一个数组(矩阵),然后以矩阵C下的常规顺序显示。更改后的顺序正在显示。我不太精通C,正在学习。我的代码基于我必须使用的代码。 但是,在尝试调用和运行常规订单时,屏幕上不会显示任何内容。编译期间没有任何错误。尝试创建一个指向Matrix及其值的指针时,出现不兼容的类型错误。我确实尝试过投放,并遇到了相同的错误。我不确定类型或指针声明是否错误。但是,它们确实与我看到的阅读内容和示例相符。有人可以查看我发布的代码,并向我指出正确的方向,为什么它不显示输出的第二行?请指出我或告诉我该怎么做,并附上说明。我正在学习,我知道当我在这里发布信息时,我做错了事情。反复告诉我我错了对我没有帮助。我知道这就是为什么我要在这里寻求帮助。谢谢

#include <stdio.h>
#include <stdlib.h>

#define N 8

typedef struct _Matrix{
double element [N][N];
} Matrix;

struct zigzag {
    int row, col;
} ZigZag[N*N] = {
    {0,0},
    {0,1},{1,0},
    {2,0},{1,1},{0,2},
    {0,3},{1,2},{2,1},{3,0},
    {4,0},{3,1},{2,2},{1,3},{0,4},
    {0,5},{1,4},{2,3},{3,2},{4,1},{5,0},
    {6,0},{5,1},{4,2},{3,3},{2,4},{1,5},{0,6},
    {0,7},{1,6},{2,5},{3,4},{4,3},{5,2},{6,1},{7,0},
    {7,1},{6,2},{5,3},{4,4},{4,5},{2,6},{1,7},
    {2,7},{3,6},{4,5},{5,4},{6,3},{7,2},
    {7,3},{6,4},{5,5},{4,6},{3,7},
    {4,7},{5,6},{6,5},{7,4},
    {7,5},{6,6},{5,7},
    {6,7},{7,6},
    {7,7}
};

int data[N*N];

int* ZigZagOrdering(Matrix x) // fill data and return data
     {
        int i;


        for (int i=0; i < N*N; i++)
             {
                int row =  ZigZag[i].row;
                int col = ZigZag[i].col;
                printf("%g ", x.element[row][col]);
             }
                printf("\n");


       }

Matrix InverseZigZagOrdering(int *x)  // pass in data and return a matrix
 {
     int i; 
     Matrix C; 
        for (int i=0; i <N; i++)
            {
                printf ("%g ", *C.element[i]); 
            }
                 printf("\n");
 }//IZZ




int main(int argc, char **argv)
{
    // special case that allows us to initialize this way
    Matrix C =    {10,  4, 2,  5, 1, 0, 0, 0,
                    3,  9, 1,  2, 1, 0, 0, 0,
                   -7, -5, 1, -2, -1, 0, 0, 0,
                   -3, -5, 0, -1, 0, 0, 0, 0,
                   -2,  1, 0,  0, 0, 0, 0, 0,
                    0,  0, 0,  0, 0, 0, 0, 0,
                    0,  0, 0,  0, 0, 0, 0, 0,
                    0,  0, 0,  0, 0, 0, 0, 0};



    ZigZagOrdering(C);

    Matrix InverseZigZagOrdering(int *C);


}//main

0 个答案:

没有答案