이 프로그램은 배열 소스의 모든 하위 세트를 "계산 중"입니다. 결과 값을 polje이라는 다른 2D 파일에 저장해야합니다. printf("%d %d %d ", source[i][0], source[i][1], source[i][2]);
을 사용하면 코드가 제대로 작동하지만 결과 필드에 모든 내용을 복사하려고 할 때 오류가 발생합니다. 배열의 색인 생성에 문제가 있다고 생각합니다. polje.배열 서브 세트 저장
0 3 5
3 4 2
3 4 2
0 0 0
0 3 5
0 0 0
0 0 0
0 0 0
을하지만 대신은 다음과 같습니다 :
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char** argv) {
int f;
int i,j;
int source[2][3] = {{0,3,5},{3,4,2}};
int currentSubset = 3;
int polje[8][3];
for(i=0;i<8;i++){
for(j=0;j<3;j++){
polje[i][j]=0;
}}
int tmp;
while(currentSubset)
{
tmp = currentSubset;
for(i = 0; i<3; i++)
{
if (tmp & 1)
{
printf("%d %d %d ", source[i][0], source[i][1], source[i][2]); //writes out everything I want
polje[currentSubset][0]=source[i][0];
polje[currentSubset][1]=source[i][1];
polje[currentSubset][2]=source[i][2];
}
tmp >>= 1;
}
printf("\n");
currentSubset--;
}
for(i=0;i<8;i++){
for(j=0;j<3;j++){
printf("%d ", polje[i][j]);
}printf("\n");}
return (EXIT_SUCCESS);
}
출력 필드는해야
0 3 5
3 4 2
3 4 2
0 0 0
*0 0 0*
0 0 0
0 0 0
0 0 0
'INT의 TMP 걸리므
또한
polje
배열 정확한 인덱스polje[currentSubset * 2 + i][0]
이고; while (currentSubset) { tmp = currentSubset;'나에게 나쁜 스타일처럼 보입니다. 냉소는 더 간단해질 것입니다. – wildplasser