我正在尝试为Hadamard matrix代编译此代码。谁能告诉为什么这段代码没有被执行?
#include <stdio.h>
#include <math.h>
#include <conio.h>
main() {
int H_SIZE=32; /*length of each code word: you can change. */
int n,r1,c1,i,j;
int hadamard_matrix[2][2]={{1,1},{1,0}}; /* Initialise 1x1 matrix */
for (r1=0;n<H_SIZE; r1*=2){
for(c1=0; c1<H_SIZE;c1*=2){
while (r1<H_SIZE){
for (i=0;i<r1;i++){ /* loop#1: Copying the code matrix itself below for new code matrix */
for (j=0;j<c1; j++){
hadamard_matrix[i+r1][j]=hadamard_matrix[i][j];
}
}
for (j=0; j<c1;j++){/* Loop#2: Copying the code matrix on right to itself for new matrix */
for (i=0; i<r1;i++){
hadamard_matrix[i][j+c1]=hadamard_matrix[i][j];
}
}
for (i=0;i<r1;i++){/* Loop#3: Copying cojugate of code matrix for complentary diagonal part */
for (j=0;j<c1;j++){
hadamard_matrix[i+r1][j+c1]=hadamard_matrix[i][j];}}
}
}
}
printf("%d\t", hadamard_matrix);
}
答案 0 :(得分:0)
首先:通过编译器运行它,我不会编译它。启用编译器警告。
其次:
main() {
那不行。做:
void main(void) {
第三
n<H_SIZE
Wtf是应该做的吗?您可能想要输入r1
。请注意,您的n
也从未初始化,也从未在代码中的任何其他位置使用
第四:
printf("%d\t", hadamard_matrix);
不是打印矩阵的方式。
你似乎也错过了某个地方的右大括号。