ТОР 5 статей: Методические подходы к анализу финансового состояния предприятия Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века Характеристика шлифовальных кругов и ее маркировка Служебные части речи. Предлог. Союз. Частицы КАТЕГОРИИ:
|
Void print_file ();void main(){ FILE * f = fopen ("111.bin", "r+b"); if (f == NULL){ printf ("cannot open file"); Exit (1); } int n = getFileSize (f); Int j; for (int i=1; i < n; i++){ int elt = getElementAtPosition (i, f); Int jelt; for (j=i-1; j >= 0 && (jelt = getElementAtPosition (j, f)) > elt; j--) setFileElements (j+1, jelt, f); setFileElements (++j, elt, f);// поместить в позицию j+1 первый (текущий) элемент } Fclose (f); Print_file (); } int getElementAtPosition (int i, FILE *f){ fseek (f, i * sizeof (int), SEEK_SET); Int buf; fread (&buf, sizeof (int), 1, f); Return buf; } int getFileSize (FILE *f){ int count = 0; Fseek (f, SEEK_SET, 0); Int tmp; while (!feof (f)) { fread (&tmp, sizeof (int), 1, f); count++; } Return count - 1; } void setFileElements (int pos, int element, FILE * f){ fseek (f, pos * sizeof (int), SEEK_SET); fwrite (&element,sizeof (int), 1, f); } void print_file (){ FILE * f = fopen ("111.bin", "rb"); if (f == NULL){ printf ("cannot open file"); Exit (1); } for (int i=0;! feof (f); i++){ Int x; if (! fread (&x, sizeof (int), 1, f)) break; printf ("element # %d = %d\n", i, x); } Fclose (f); } Задачи:
Kонтрольные вопросы
а) Ни какие б) Операции сравнения в) Арифметические операции г) Логические операции д) Операция присваивания 2. Пользователь вводит строку "Иванов Иван Иванович". Эту строку программа читает после нажатия клавиши Enter с помощью функции scanf("%s", str). Что будет занесено в массив str? а) Ничего, так как перед именем str не хватает символа & 3 Какой результат вернет функция strcmp("a","b");? а) Положительное число б) Отрицательное число с) Минус один д) Плюс один Не нашли, что искали? Воспользуйтесь поиском:
|