Я только начинаю наклонять C, поэтому я не очень хорошо ее знаю. Предоставленная нам программа говорит нам написать программу сортировки вставки, которая занимает 20 строк, разделенных пробелом, и сортирует их по алфавиту и распечатывает их по порядку. Это меня сбивает с толку, так как C не имеет типа данных String (по крайней мере, насколько мне известно). Разве строки не просто массивы символов? Вот что я получил:String Insertion Сортировка программы
#include <stdio.h>
#include <string.h>
#define MAX_STRINGS 20
void InsertionSort(char list[]);
void main()
{
int index;
char strings[MAX_STRINGS];
/* Get input */
printf("Enter %s strings.\n", MAX_STRINGS);
for (index = 0; index < MAX_STRINGS; index++)
{
char tempString[100];
printf("Input string %d : ", index);
scanf("%s", &tempString[0]);
strings[index] = tempString;
}
InsertionSort(strings);
printf("\nThe input set, in alphabetical order:\n");
for (index = 0; index < MAX_STRINGS; index++)
{
printf("%s\n", strings[index]);
}
}
void InsertionSort(char list[])
{
int unsorted;
int sorted;
char unsortedItem;
for(unsorted = 1; unsorted < MAX_STRINGS; unsorted++)
{
unsortedItem = list[unsorted];
for (sorted = unsorted - 1; (sorted >= 0) && (list[sorted] > unsortedItem); sorted--)
{
list[sorted + 1] = list[sorted];
}
list[sorted + 1] = unsortedItem;
}
}
Я совершенно не знаком с синтаксисом C и C, и я нахожу его очень запутанным. Эта программа работает некорректно. То, что он делает, это позволяет мне вводить 20 строк, но потом ничего не сортируется и ничего не выводит. Любая идея о том, как это исправить? Кроме того, есть ли какая-либо идея, как я могу получить ее туда, где я набираю одно предложение, и каждая строка разделяется пробелом? Например, если я печатаю «Я изучаю, как программировать на C, и сейчас мне это не нравится». это даст мне 16 строк. «Я», «Я», «Обучение» и т. Д. Спасибо.
[Что такое правильное объявление основного?] (Http://stackoverflow.com/questions/4207134/what-is-the-proper-declaration-of-main) – lurker
Ну, на некоторых платформах исполняемый файл может только возвращать коды возврата между 0 и 255, так что char подходит ;-) – Kenney
В этом есть достаточно разные вещи, которые я не думаю, что мы сможем вам помочь. Вам нужна коучинговая сессия «один на один». Пожалуйста, задайте этот вопрос тому, кто вас учит. – zwol