0 Frage: wie man den Wert von etwas im Array mit einem Zeiger ändert, ohne eckige Klammern zu verwenden [closed]

Frage erstellt am Wed, May 8, 2019 12:00 AM

Es gibt mir den Fehler, dass ich den Code aufgrund des Zeigers nicht verwenden kann.

:)

#include <stdio.h>
#define LENGTH 31
void get_boom_number(int* a)
{
    printf("Enter Boom number\n");
    while(scanf("%d", &*a)==0) {printf("Illegal input, try again:\n");
    getchar();
    }
}
void play(int *boom,int n,char *players[])
{
    int i=*boom-1,j,swap;
    while(n>0)
    {
        while((i/n)>0)i-=n;
        for(j=i%n;j<n-1;j++)/* sliding the name of the loser to the end of the array so we can remain the array by the same formation(sorted well)*/
        {
            swap=players[j];
            players[j]=players[j+1];
            players[j+1]=swap;
        }

        i+= *boom-1;
        n--;
    }
}
int main()
{
    char * players[LENGTH]={"Tyrion Lannister","Daenerys Targaryen","Jon Snow","Arya Stark","Theon Greyjoy", "Joffrey Baratheon","Khal Drogo","Ted Mosby","Marshall Eriksen","Robin Scherbatsky"/*10*/,"Barney Stinson", "Lily Aldrin", "Tracy McConnell", "Ted Mosby", "Leonard Hofstadter","Sheldon Cooper", "Penny", "Howard Wolowitz", "Raj Koothrappali", "Bernadette Rostenkowski-Wolowitz"/*20*/,"Amy Farrah Fowler", "Gregory House", "Lisa Cuddy", "James Wilson","Eric Foreman", "Allison Cameron", "Robert Chase" ,"Lawrence Kutner", "Chris Taub","Remy 13 Hadley"/*30*/, "Amber Volakis"};
    int boom_number, i;
    get_boom_number(&boom_number);
    play(&boom_number,LENGTH,&players);
    printf("The order after the game is: \n");
    for(i=0; i<LENGTH-1; i++)
    {
        printf("%s, ",players[i]);
    }
    printf("%s.",players[LENGTH-1]);
    return 0;
}


einfach ... alles, was ich ändern möchte, sind die Klammern ... ich kann sie nicht verwenden, wurde mir gesagt. Also brauche ich eine Möglichkeit, das gleiche Programm ohne die Klammern bei der Funktion zu verwenden: spielen.

    
0
  1. (players+i) ist der Speicherort und *(players+i) ist der Inhalt.
    2019-05-08 16: 13: 52Z
  2. players[j] ist keine int.
    2019-05-08 16: 14: 47Z
  3. scanf("%d", &*a) - a ist bereits ein Zeiger ~ scanf("%d", a)
    2019-05-08 16: 16: 56Z
  4. Vielen Dank, dass ich es behoben habe
    2019-05-08 16: 17: 33Z
0 Antworten                              0                         
Quelle platziert Hier