2017-11-28 2 views
0

würde Ich mag ein char-Array erstellen, drucken Sie es, neu zu organisieren, und es dann in C. Neudruck Hier ist, was ich bisher:C Coding: Erstellen Char Array, Print, reorganisieren und Print Wieder

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

int main(){ 

    int i = 0; 
    int j = 0; 
    char k[4][2]; 
    char thing[1][1]; 

    strcpy(k[0] , "A"); 
    strcpy(k[1] , "B"); 
    strcpy(k[2] , "C"); 
    strcpy(k[3] , "D"); 

    printf("\nThe original order is: \n"); 
    for (int i = 0; i < 4; i++) {  // fill 
     printf("%s,", k[i]); 
    } 

    printf("\nThe reordering is: \n"); 
    for (int i = 0; i < 4; i++) { // reorder 
    strcpy(thing[0], k[i]); 
    j = (int)(i + rand()/(RAND_MAX/(5 - i))); 

    strcpy(k[i], k[j]); 
    strcpy(k[j], thing[0]); 
    printf("%s,", k[i]); // print 
    } 

    return(0); 

} 

Hier ist mein Terminal-Ausgang. Es gibt keine Warnungen, nur den Abbruch.

mac% clang thing.c -o thing 
mac% ./thing 

The original order is: 
A,B,C,D, 
The reordering is: 
zsh: abort  ./thing 
+0

'char k [4] [1];' -> 'char k [4] [2];', Für jede Zeichenfolge gibt es einen Null-Terminator. –

+0

Bitte bearbeiten Sie Ihre Frage und fügen Sie die Fehler/Warnungen ein, die Sie erhalten. Vielen Dank. –

+0

Nur bearbeitet, um klarer Bob zu sein. – billyl320

Antwort

0

Ich fand es heraus! Hier ist die Lösung kam ich mit:

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

int main(){ 

    int i = 0; 
    int j = 0; 
    char k[4] = "ABCD"; 
    char thing[1] = "O"; 

    printf("\nThe original order is: \n"); 
    for (int i = 0; i < 4; i++) {  // fill 
     printf("%c,", k[i]); 
    } 

    printf("\nThe reordering is: \n"); 
    for (int i = 0; i < 4; i++) { // reorder 
    thing[0]= k[i]; 
    j = (int)(i + rand()/(RAND_MAX/(4 - i))); 

    k[i]= k[j]; 
    k[j]= thing[0]; 
    printf("%c,", k[i]); // print 
    } 

    return(0); 

} 

Und der Ausgang ist

The original order is: 
A,B,C,D, 
The reordering is: 
A,B,D,C,%