Что означает 1+
для x=1+rand()%5;
. Если вы используете x
в качестве индекса для article
, он должен быть от 0 до 4 включительно. Таким образом, вы должны использовать x=rand()%5;
.
Затем вы делаете article[x]=hold;
, ожидая, что hold
будет содержать выбранную статью. Вы, вероятно, имели в виду hold=article[x];
.
Но вы определили char hold[20];
, как если бы вы планировали сделать копию там, поэтому вы, вероятно, имели в виду hold=strcpy(hold, article[x]);
.
Наконец, я заметил, что вы поместили строку break перед строкой, а не после в printf("\n%s",hold);
. Вы имеете в виду printf("%s\n",hold);
?
Для вашей информации, вся функция main()
может быть переписана следующим образом:
char *article[]={"the","a","one","some","any"};
printf("%s\n",article[rand()%5]);
, но ее легче читать, если вы сохраните отдельные шаги, как вы сделал.