Versuchen, fügen ein element in einem array mit Zeigern, aber nicht erfolgreich

Mir helfen....Es gibt keine compile-Zeit-Fehler, aber es gibt einige logische Fehler, die ich bin nicht in der Lage heraus zu Sortieren.
Input entnommen Nutzer ohne problem, aber die Elemente sind nicht immer eingefügt.
Die Ausgabe ist unverändert array, das die Benutzer eingegeben.

void insert(int*,int);

void main()
{
    int a[10];
    int i,n,pos,x,j,z;
    clrscr();
    printf("Enter Size Of an array: ");
    scanf("%d",&n);
    printf("Enter Elements of an array: ");
    for(i=0;i<n;i++)
    {
        scanf("%d",a+i);
    }
    insert(a,n);
    printf("\nArray after Insertion of elements at 2nd & 5th Position\n");
    for(i=0;i<n;i++)
    {
        printf("\t%d\t",*a+i);
    }
    getch();
}

void insert(int *b, int n)
{
    if(n>=1)
    {
        printf("Insert Element at 2nd Position: ");
        scanf("%d",b+1);
    }
    if(n>=4)
    {
        printf("Insert Element at 5th Position: ");
        scanf("%d",b+4);
    }
}
In welcher Weise ist das Programm-Verhalten unerwartete? Vielleicht möchten Sie anrufen, legen Sie zwei mal. Btw, was passiert, wenn der Benutzer eine n, die größer als 10?
Was Wert ist n?
Ich denke, Sie ersetzen Sie einfach die Elemente in der 2. oder 5. position und nicht selbst einen Wert einzugeben. Versuchen Sie, Ihre dynamischen array verwenden oder eine dynamische Liste statt. Siehe diesen thread: stackoverflow.com/questions/4063857/dynamic-list-in-ansi-c.
Ein Platz rechts von der Spitze, die im März direkt in undefined behavior ist jede n mehr als 10. Und vielleicht überprüfen die Ergebnisse dieser scanf() ruft nur, wissen Sie, den Nervenkitzel.
WhozCraig, n == 10 ist problematisch.

InformationsquelleAutor Aman Tewary | 2013-08-25

Schreibe einen Kommentar