在C中用数组将行更改为列
在输出中,我有如下数组数据 (1)(2)(3)(4)(5)在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
(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]);
}
}