Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在C中用数组将行更改为列_C_Arrays - Fatal编程技术网

在C中用数组将行更改为列

在C中用数组将行更改为列,c,arrays,C,Arrays,在输出中,我有如下数组数据 (1)(2)(3)(4)(5) (6)(7)(8)(9)(10) 我想用这样的新输出更改输出 (1)(6) (2)(7) (3)(8) (4)(9) (5)(10) 我该怎么办 这是我显示第一个输出的代码 void generateRandomData(char **data){ int i, j, max; srand(time(NULL)); for(i=0;i<JUMLAHDATA;i++) { max=rand()%(10)+1; dat

在输出中,我有如下数组数据

(1)(2)(3)(4)(5)
(6)(7)(8)(9)(10)

我想用这样的新输出更改输出

(1)(6)
(2)(7)
(3)(8)
(4)(9)
(5)(10)

我该怎么办

这是我显示第一个输出的代码

void generateRandomData(char **data){
int i, j, max;
srand(time(NULL));
for(i=0;i<JUMLAHDATA;i++) {
    max=rand()%(10)+1;
    data[i]=malloc(max+1); 
    for (j= 0;j<max;j++) {
        data[i][j]=rand()%(24)+97;
    }
    data[i][j] = '\0';  
}

}

void swapData(char *x,char *y){
   char temp;
   temp = *x;
   *x = *y;
   *y = temp;
}

void selectionSort(char **data){
    int i, j, min;
    for (i=0;i<JUMLAHDATA-1;i++){
    min=i;
        for (j=i+1;j<JUMLAHDATA;j++){
            if (strcmp(data[j],data[min])<0){         
            min = j;
            }        
        }
        swapData(data[i],data[min]); 
   }
}

void cetakData(char **data){
    int i;
    for(i=0;i<JUMLAHDATA;i++){
        printf("(%2i) ",i+1, data[i]);
        if((i+1)%5==0) printf("\n");
    }

}
void generateRandomData(字符**数据){
int i,j,max;
srand(时间(空));

对于(i=0;i首先直接获取数据数组/指针:)

void cetakData(int*data){
对于(int i=0;i
所以您想将大小为[n][m]的2D数组转换为[m][n]?因为您的代码与此不匹配。数组是如何定义的?它是常规1D数组还是2D数组?只是需要更改打印顺序吗?抱歉,我忘了将代码
printf((%2i)”,i+1,data[i])
不会做你认为它会做的事情。如果只是为了打印,你不需要交换。只需以不同的方式打印即可。
void cetakData_by_twos(int *data) {
    for (int i = 0; i < JUMLAHDATA / 2; i++) {
        printf("(%2i) (%2i)\n", data[i], data[i + JUMLAHDATA / 2]);
    }
}