Массив и проверка элементов по условию - C (СИ)

  1. Задан размер массива и его элементы. Определить являются ли его элементы членами геометрической прогрессии и вывести значение знаменателя прогрессии. вот всё пока что сделал.... почему принимает тока 2 элемента, а не 3?C1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 #include<conio.h> #include<iostream.h> #include<stdio.h> #include<math.h> int main()     {         int A[3];         int i,n;           printf("\n N=");         scanf("%d",&n);         printf("\n enter array A \n");             for (i=0;i<n;i++)             scanf("%d ",&n);     getch();     return 0;     }


textual

Код:

#include<conio.h>
#include<stdio.h>
 
int
main(void)
{
    int i, n, u, j = 0, flag = 0;
    float a[20];
    /* printf("\n N=");
    scanf("%d",&n); */
    printf("enter array A \n");
    for (i = 0; i < 20; i++)
        scanf("%d",&a[i]);
    float q;
    q = a[1] / a[0];
    for (i = 0; i < 19; i++)
    {
        if (a[i+1] != q*a[i]) {
            flag = 1;
            break;
        }
    };
    if (flag == 0)
        printf("geometry progression q = %f\n", q);
    else
        printf("no progression\n");
    return 0;
}


Похожие ответы
  1. Собственно, вопрос следующий: Необходимо считать строку и изменить её. Проделать это с N строками. Затем вывести результат изменения всех строк. Грубо говоря, мы узнаём у пользователя сколько строк будет вводиться, считываем поочерёдно строки, параллельно изменяя их определённым образом, а затем у меня загвоздка: не знаю, как лучше поступить... Наверное, куда-то и как-то сохранить. Но как создать нужное кол-во массивов типа char с разными именами под изменённые строки - не знаю. Подскажите, пожалуйста. Обрыл весь форум... Прикладываю код.C1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 #include #include #include   int main() {    int ai,a;    char str0[BUFSIZ];    printf("Input number of strings: ");    scanf("%d",&a);    for(ai=0;ai

  1. Дали лабу,писать можно только на C. С ним не особо знаком. Вопрос такой. После чтения всех символов из файла, мне нужно отсортировать полученное по алфавиту. Пробую обычным пузырьком, но после него у меня компиль(Visual Studio 2017) ругается на free(text). Немного не понимаю, как я порчу кучу. Может я торможу, подскажите пожалуйста.C1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 //19. Задан текстовый файл F1, состоящий из произвольной последовательности буквенных символов. Упорядочить символы в алфавитном порядке, при этом все повторяющиеся символы должны быть удалены, и переписать новый текст в файл F2. #include #include #include #include #include #include   void bubble(char *i, int n);   void main(void) {     SetConsoleCP(1251);     SetConsoleOutputCP(1251);       char *text = NULL;     int size = 0;     FILE *f;     f = fopen("F:\Input.txt", "r");       if (f != NULL)     {         fseek(f, 0, SEEK_END);         size = ftell(f);         fseek(f, 0, SEEK_SET);           text = (char*)malloc(size * sizeof(char));         fread(text, size, 1, f);     }     fclose(f);       bubble(text, strlen(text));     printf("%s", text);       f = fopen("F:\Output.txt", "w");     fwrite(text, 1, size, f);       free(text);     fclose(f);     _getch(); }   void bubble(char *i, int n) {     int a, b;     char t;       for (a = 0; a < n; a++)         for (b = n - 1; b >= a; b--)         {             if (i[b - 1] > i[b])             {                 t = i[b - 1];                 i[b - 1] = i[b];                 i[b] = t;             }         }   }

  1. Описать тип struct Rectangle, задающий на плоскости замкнутый прямоугольник со сторонами, параллельными координатным осям и габаритами (x–, x+) и (y–, y+) по осям абсцисс и ординат соответственно. Реализовать в виде отдельных функций следующие операции над переменными этого типа: а) вычисление площади прямоугольника; б) построение прямоугольника по паре точек, задающих любую пару противолежащих вершин; в) построение пересечения двух прямоугольников; г) проверка принадлежности точки прямоугольнику; д) проверка включения одного прямоугольника в другой; е) поворот прямоугольника относительно центра на прямой угол. С использованием описанных типа и функций разработать программу, которая для заданного набора из N прямоугольников находит:1) площадь наименьшего из прямоугольников, содержащего в себе один и более прямоугольников из заданного набора; 2) все пары прямоугольников, совпадающих с точностью до поворота напрямой угол. Не знаю как сделать пункты, выделенные жирным. Помогите

  1. Дорогие знатоки, проблема следующая: при выводе строки на экран появляется символ переноса строки появление которого моему уму не постижимо (в программировании слабоват). Надеюсь на вашу помощь) Собственно проблема на скрине.C1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 #include #include #include #include #include   #define N 3   char predmet1[20]; char predmet2[20]; char predmet3[20];   char shif_stud[] = "Шифр студента"; char shif_grup[] = "Шифр группы"; char FIO[] = "Ф.И.О. студента"; char sred[] = "Средний балл";   float alg_1(float a, float b, float c) //Вычесление среднего балла студента {     float res = (a + b + c)/3;     return res; }   struct student {       int shif_stud; //Шифр студента     char FIO[20];     int shif_grup; //Шифр Группы     float ocenka1;     float ocenka2;     float ocenka3;     float sred; //Средний балл студента } stud[N];   int main(void) {     SetConsoleCP(1251);     SetConsoleOutputCP(1251);     setlocale(LC_ALL, "rus");     int i, vibor1, vibor2;     printf("Пожалуйста, введите дисциплины обучения студентов (предметы):\n");     printf("Введите название 1 - ого предмета (до 20-ти знаков):");     gets (predmet1);     printf("Введите название 2 - ого предмета (до 20-ти знаков):");     gets (predmet2);     printf("Введите название 3 - ого предмета (до 20-ти знаков):");     gets (predmet3);     printf("Как вы хотите получить информацию о студентах?\n");     printf("1. - Из файла\n");     printf("2. - Вручную\n");     scanf("%d", &vibor1);     FILE *fp;     switch (vibor1)     {         case 1:         fp = fopen("K16-1.txt", "r");         if((fp = fopen("K16-1.txt", "r")) == NULL)         {             printf("ОШИБКА! Файла не существует!\n");             printf("Пожалуйста, введите информацию:\n");         }         else         {             for(i = 0; i < N; i++)             {             fgets(stud[i].FIO, 19, fp);             fscanf(fp, "%d\n", &stud[i].shif_stud);             fscanf(fp, "%d\n", &stud[i].shif_grup);             fscanf(fp, "%f\n", &stud[i].ocenka1);             fscanf(fp, "%f\n", &stud[i].ocenka2);             fscanf(fp, "%f\n", &stud[i].ocenka3);             fscanf(fp, "%f\n", &stud[i].sred);             }         fclose(fp);         break;          }     case 2:         fp = fopen("K16-1.txt", "w");         for (i = 1; i < N; i++)         {             printf("Введите Ф.И.О. %d-го студента (до 20-ти знаков):\n", i);             fflush(stdin);             fgets(stud[i].FIO, 20, stdin);             fputs(stud[i].FIO, fp);             printf("Введите шифр %d-го студента (6 знаков):\n", i);             scanf("%d", &stud[i].shif_stud);             fprintf(fp, "%d\n", stud[i].shif_stud);             printf("Введите шифр группы %d-го студента (6 знаков):", i);             scanf("%d", &stud[i].shif_grup);             fprintf(fp, "%d\n", stud[i].shif_grup);             printf("Введите оценку студента по дисциплине %s (1 знак):", predmet1);             scanf("%f", &stud[i].ocenka1);             fprintf(fp, "%f\n", stud[i].ocenka1);             printf("Введите оценку студента по дисциплине %s (1 знак):", predmet2);             scanf("%f", &stud[i].ocenka2);             fprintf(fp, "%f\n", stud[i].ocenka2);             printf("Введите оценку студента по дисциплине %s (1 знак):", predmet3);             scanf("%f", &stud[i].ocenka3);             fprintf(fp, "%f\n", stud[i].ocenka3);             stud[i].sred = alg_1(stud[i].ocenka1, stud[i].ocenka2, stud[i].ocenka3);             fprintf(fp, "%f\n", stud[i].sred);         }         fclose(fp);         break;     }       system("cls");     while (vibor2 != 4)     {         printf("_____________________________________________________________________________________________\n");         printf("                        |-----------Меню----------|                                 \n");         printf("                                                                    \n");         printf("                    |  Выберите пожалуйста действие  |                          \n");         printf("                                                                    \n");         printf("            1. - Вывести список студентов, получающих степендию         \n");         printf("            2. - Список студентов, умеющих неудовлетворительные оценки  \n");         printf("            3. - Вывод оценок студента по всем дисциплинам              \n");         printf("            4. - Выход                                                  \n");         printf("_____________________________________________________________________________________________\n");         scanf("%d", &vibor2);         system("cls");         switch (vibor2)         {             case 1:                 printf("%-20s%-20s%-20s%-20s\n", shif_stud, shif_grup, FIO, sred);                 for (i = 0; i < N; i++)                 {                     if (stud[i].sred >= 4)                     {                         printf("%-20d%-20d%-20s%-20f\n", stud[i].shif_stud, stud[i].shif_grup, stud[i].FIO, stud[i].sred);                     }                 }                 getch();                 system("cls");                 break;             case 2:                 printf("%-20s%-20s%-20s%-20s\n", shif_stud, shif_grup, FIO, sred);                 for (i = 0; i < N; i++)                 {                     if (stud[i].sred < 3)                     {                         printf("%-21d%-20d%-20s%-20f\n", stud[i].shif_stud, stud[i].shif_grup, stud[i].FIO, stud[i].sred);                     }                 }                 getch();                 system("cls");                 break;             case 3:                 printf("%-20s%-20s%-20s%-20s%-20s%-20s\n", FIO, shif_grup, shif_stud, predmet1, predmet2, predmet3);                 for (i = 0; i < N; i++)                 {                     printf("%-20s", stud[i].FIO);                     printf("%-20d%-20d%-20f%-20f%-20f\n", stud[i].shif_grup, stud[i].shif_stud, stud[i].ocenka1, stud[i].ocenka2, stud[i].ocenka3);                 }                 getch();                 system("cls");                 break;             case 4:                 printf("До свидания!");                 getch();                 break;             default:                 printf("Неверное действие! Повторите ввод.");                 getch();                 system("cls");                 break;         }     } }

  1. Из-за наличия специфики плюсов (векторы, классы, operator) вообще не удаётся интерпретировать логику, заложенную в код. Помогите, пожалуйста, разобраться и получить хотя бы шаблонный вариант на Си, который я смогу дописать до рабочего. Приведённая программа позволяет интерполировать графики кривыми Безье. В отличие от других сотен вариаций на данную тему не даёт ложных экстремумов. Вот статья на хабре с подробным описанием и примерами. Код программы на гитхабе.C++1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 // TBezierInterpolation.cpp #include #include #include   using namespace std;   #define EPSILON 1.0e-5 #define RESOLUTION 32   class Point2D { public:     double x, y;         Point2D() { x = y = 0.0; };     Point2D(double _x, double _y) { x = _x; y = _y; };         Point2D operator +(const Point2D &point) const { return Point2D(x + point.x, y + point.y); };     Point2D operator -(const Point2D &point) const { return Point2D(x - point.x, y - point.y); };     Point2D operator *(double v) const { return Point2D(x * v, y * v); };     void operator +=(const Point2D &point) { x += point.x; y += point.y; };     void operator -=(const Point2D &point) { x -= point.x; y -= point.y; };         void normalize()     {         double l = sqrt(x * x + y * y);         x /= l;         y /= l;     } };   class Segment { public:     Point2D points[4];         void calc(double t, Point2D &p)     {         double t2 = t * t;         double t3 = t2 * t;         double nt = 1.0 - t;         double nt2 = nt * nt;         double nt3 = nt2 * nt;         p.x = nt3 * points[0].x + 3.0 * t * nt2 * points[1].x + 3.0 * t2 * nt * points[2].x + t3 * points[3].x;         p.y = nt3 * points[0].y + 3.0 * t * nt2 * points[1].y + 3.0 * t2 * nt * points[2].y + t3 * points[3].y;     }; };   bool calculateSpline(const vector &values, vector &bezier) {     int n = values.size() - 1;         if (n < 2)         return false;         bezier.resize(n);         Point2D tgL;     Point2D tgR;     Point2D cur;     Point2D next = values[1] - values[0];     next.normalize();         double l1, l2, tmp, x;         --n;         for (int i = 0; i < n; ++i)     {         bezier[i].points[0] = bezier[i].points[1] = values[i];         bezier[i].points[2] = bezier[i].points[3] = values[i + 1];                 cur = next;         next = values[i + 2] - values[i + 1];         next.normalize();                 tgL = tgR;                 tgR = cur + next;         tgR.normalize();                 if (abs(values[i + 1].y - values[i].y) < EPSILON)         {             l1 = l2 = 0.0;         }         else         {             tmp = values[i + 1].x - values[i].x;             l1 = abs(tgL.x) > EPSILON ? tmp / (2.0 * tgL.x) : 1.0;             l2 = abs(tgR.x) > EPSILON ? tmp / (2.0 * tgR.x) : 1.0;         }                 if (abs(tgL.x) > EPSILON && abs(tgR.x) > EPSILON)         {             tmp = tgL.y / tgL.x - tgR.y / tgR.x;             if (abs(tmp) > EPSILON)             {                 x = (values[i + 1].y - tgR.y / tgR.x * values[i + 1].x - values[i].y + tgL.y / tgL.x * values[i].x) / tmp;                 if (x > values[i].x && x < values[i + 1].x)                 {                     if (tgL.y > 0.0)                     {                         if (l1 > l2)                             l1 = 0.0;                         else                             l2 = 0.0;                     }                     else                     {                         if (l1 < l2)                             l1 = 0.0;                         else                             l2 = 0.0;                     }                 }             }         }                 bezier[i].points[1] += tgL * l1;         bezier[i].points[2] -= tgR * l2;     }         l1 = abs(tgL.x) > EPSILON ? (values[n + 1].x - values[n].x) / (2.0 * tgL.x) : 1.0;         bezier[n].points[0] = bezier[n].points[1] = values[n];     bezier[n].points[2] = bezier[n].points[3] = values[n + 1];     bezier[n].points[1] += tgR * l1;         return true; }   int main() {     vector testValues;     vector spline;     Point2D p;       testValues.push_back(Point2D(0, 0));     testValues.push_back(Point2D(20, 0));     testValues.push_back(Point2D(45, -47));     testValues.push_back(Point2D(53, 335));     testValues.push_back(Point2D(57, 26));     testValues.push_back(Point2D(62, 387));     testValues.push_back(Point2D(74, 104));     testValues.push_back(Point2D(89, 0));     testValues.push_back(Point2D(95, 100));     testValues.push_back(Point2D(100, 0));       calculateSpline(testValues, spline);       for (auto s : spline)     {         for (int i = 0; i < RESOLUTION; ++i)         {             s.calc((double)i / (double)RESOLUTION, p);             cout << p.x << " " << p.y << endl;         }     }       cout << testValues.back().x << " " << testValues.back().y << endl;       return 0; }Bash1 g++ -std=c++11 TBezierInterpolation.cpp

  1. Перед каждой цифрой в строке вставить символ «N». СИ

  1. Здравствуйте! Данная "программа" должна обрабатывать числа, расстояние между которыми меньше 5, а также находить среди таких двух чисел самое большее чётное произведение. КОМПИЛИРУЕТСЯ ВСЁ НОРМАЛЬНО, НО ИСПОЛЬНЯТЬ ЭТА ГАДЮКА НИЧО НЕ ХОЧЕТ ИМЕННО В СЛУЧАЕ, КОГДА НА ВХОД ПОСУТПАЕТ БОЛЕЕ 5 ЧИСЕЛ. Т.е. цикл for(i=5;i int main(void) {   char j,c;      int i;      int n;      int a[5];      int x;      int max=-1;           scanf("%d",&n);     for (i=0;i<=4;i++){         scanf("%d",&a[i]);         }     for (i=5;imax )&&  (a[j-1]*a[c]%2 ==0))                     max=a[c]*a[j-1];                                             }                     }                 for (j=0;j<4;j++){             a[j]=a[j+1];         }         a[4]=x;         }      if (max==-1)          printf("-1");     else printf ("%d",max);     getchar();     getchar();     return 0; }Добавлено через 9 минут Тэкс... Счётчик тут должен робить... Тэк... Вывод массива когда у его индекса чото вычитаем тоже работает... Угу... Кажется я как-то выхожу из границ массива, но я в упор не могу разглядеть этого... Так, падажжи еманаДобавлено через 37 секунд лол, разглядеть он не может, у тебя две строки где идут пляски с массивамми, там же очевидно и ошибкаДобавлено через 3 минуты эхх, пойти спать или сожжрать таки хлеб с пащтетом? но тогда изжога будет от паштета с хлебом, я не хочу изжоги, антиацида нет с собой

  1. Задана последовательность из N вещественных чисел. Определить сколько чисел меньше K, равно K и больше K. (массив random )

  1. Нужно задать строку из букв, цифр и так далее и сделать так, чтобы программа вывела на экран каких гласных букв нет в этой строке. Помогите либо начать, либо направьте где можно почитать про это, на форуме может кто видел подобные задания? Заранее спасибо!

  1. zss, Спасибо! Скажите, вот хочу что бы он мне выводил данные, фамилии которых начинается на букву В, Г, Д. Он не показывает, подскажете почему?C++ (Qt)1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 #include #include #include #include struct TZap { char FIO[30];   double s_b, mat, xum, inf, fiz, gr, god; } Zap; int size = sizeof(TZap); FILE *Fz, *Ft; char File_Zap[] = "zapisi.dat"; char File_Rez[] = "rezult.txt"; void Out(TZap);   int main() { int kod, D_f, i = 0, j, kol;   double s_b, mat, xum, inf, fiz, gr, god; long len; TZap st, *mas_Z; Ft = fopen(File_Rez, "w"); while (true) { puts("\n Create - 1\n Add - 2\n View - 3\n Sort - 4\n EXIT - 0"); scanf("%d", &kod); switch (kod) { case 1: if ((Fz = fopen(File_Zap, "wb")) == NULL) { puts("\n Create ERROR!"); //return; } fclose(Fz); printf("\n Create New File %s !\n", File_Zap); break; case 2: Fz = fopen(File_Zap, "ab"); printf("\n F.I.O. - "); fflush(stdin); gets(Zap.FIO); printf(" God rozdeniya - "); fflush(stdin); scanf("%lf", &Zap.god); printf(" Nomer gruppi - "); scanf("%lf", &Zap.gr); printf(" Fizika - "); scanf("%lf", &Zap.fiz); printf(" Matematika - "); scanf("%lf", &Zap.mat); printf(" Informatika - "); scanf("%lf", &Zap.inf); printf(" Xumuya - "); scanf("%lf", &Zap.xum);   Zap.s_b = (Zap.fiz + Zap.mat + Zap.inf + Zap.xum) / 4;   fwrite(&Zap, size, 1, Fz); fclose(Fz); break; case 3: if ((Fz = fopen(File_Zap, "rb")) == NULL) { puts("\n Open ERROR!"); //return; } // printf("\n\t —-----------------— Informations —-------------------\n"); printf("\n\t FIO , god ,nomer gr, fiz , mat , inf , xum ,sredball\n"); // fprintf(Ft, "\n\t —-----------------— Informations —-------------------"); while (1) { if (!fread(&Zap, size, 1, Fz)) break; Out(Zap); } fclose(Fz); break; case 4: Fz = fopen(File_Zap, "rb"); D_f = fileno(Fz); len = filelength(D_f); kol = len / size; mas_Z = new TZap[kol]; // for (i = 0; i < kol; i++) fread((mas_Z + i), size, 1, Fz); fclose(Fz); printf("\n\t---— S O R T —---\n"); fprintf(Ft, "\n\t---— S O R T —---\n"); for (i = 0; i < kol - 1; i++) if ((mas_Z[i].FIO[0] == 'В') && (mas_Z[i].FIO[0] == 'Г') && (mas_Z[i].FIO[0] == 'Д')) //&& ((mas_Z[i].mat == 8) || (mas_Z[i].mat == 9))) //888 { } for (i = 0; i < kol; i++) Out(mas_Z[i]);   delete[]mas_Z; break; case 0: fclose(Ft); //888 //return; }     } }     void Out(TZap z) { printf("\n %20s , %6.0lf , %6.0lf , %6.3lf , %6.3lf , %6.3lf , %6.3lf , %6.3lf", z.FIO, z.god, z.gr, z.fiz, z.mat, z.inf, z.xum, z.s_b); fprintf(Ft, "\n %20s , %6.0lf , %6.0lf , %6.3lf , %6.3lf , %6.3lf , %6.3lf , %6.3lf", z.FIO, z.god, z.gr, z.fiz, z.mat, z.inf, z.xum, z.s_b); }Добавлено через 1 минутуQwerty_Wasd, Спасибо! Скажите, вот хочу что бы он мне выводил данные, фамилии которых начинается на букву В, Г, Д. Он не показывает, подскажете почему?C++ (Qt)1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 #include #include #include #include struct TZap { char FIO[30];   double s_b, mat, xum, inf, fiz, gr, god; } Zap; int size = sizeof(TZap); FILE *Fz, *Ft; char File_Zap[] = "zapisi.dat"; char File_Rez[] = "rezult.txt"; void Out(TZap);   int main() { int kod, D_f, i = 0, j, kol;   double s_b, mat, xum, inf, fiz, gr, god; long len; TZap st, *mas_Z; Ft = fopen(File_Rez, "w"); while (true) { puts("\n Create - 1\n Add - 2\n View - 3\n Sort - 4\n EXIT - 0"); scanf("%d", &kod); switch (kod) { case 1: if ((Fz = fopen(File_Zap, "wb")) == NULL) { puts("\n Create ERROR!"); //return; } fclose(Fz); printf("\n Create New File %s !\n", File_Zap); break; case 2: Fz = fopen(File_Zap, "ab"); printf("\n F.I.O. - "); fflush(stdin); gets(Zap.FIO); printf(" God rozdeniya - "); fflush(stdin); scanf("%lf", &Zap.god); printf(" Nomer gruppi - "); scanf("%lf", &Zap.gr); printf(" Fizika - "); scanf("%lf", &Zap.fiz); printf(" Matematika - "); scanf("%lf", &Zap.mat); printf(" Informatika - "); scanf("%lf", &Zap.inf); printf(" Xumuya - "); scanf("%lf", &Zap.xum);   Zap.s_b = (Zap.fiz + Zap.mat + Zap.inf + Zap.xum) / 4;   fwrite(&Zap, size, 1, Fz); fclose(Fz); break; case 3: if ((Fz = fopen(File_Zap, "rb")) == NULL) { puts("\n Open ERROR!"); //return; } // printf("\n\t —-----------------— Informations —-------------------\n"); printf("\n\t FIO , god ,nomer gr, fiz , mat , inf , xum ,sredball\n"); // fprintf(Ft, "\n\t —-----------------— Informations —-------------------"); while (1) { if (!fread(&Zap, size, 1, Fz)) break; Out(Zap); } fclose(Fz); break; case 4: Fz = fopen(File_Zap, "rb"); D_f = fileno(Fz); len = filelength(D_f); kol = len / size; mas_Z = new TZap[kol]; // for (i = 0; i < kol; i++) fread((mas_Z + i), size, 1, Fz); fclose(Fz); printf("\n\t---— S O R T —---\n"); fprintf(Ft, "\n\t---— S O R T —---\n"); for (i = 0; i < kol - 1; i++) if ((mas_Z[i].FIO[0] == 'В') && (mas_Z[i].FIO[0] == 'Г') && (mas_Z[i].FIO[0] == 'Д')) //&& ((mas_Z[i].mat == 8) || (mas_Z[i].mat == 9))) //888 { } for (i = 0; i < kol; i++) Out(mas_Z[i]);   delete[]mas_Z; break; case 0: fclose(Ft); //888 //return; }     } }     void Out(TZap z) { printf("\n %20s , %6.0lf , %6.0lf , %6.3lf , %6.3lf , %6.3lf , %6.3lf , %6.3lf", z.FIO, z.god, z.gr, z.fiz, z.mat, z.inf, z.xum, z.s_b); fprintf(Ft, "\n %20s , %6.0lf , %6.0lf , %6.3lf , %6.3lf , %6.3lf , %6.3lf , %6.3lf", z.FIO, z.god, z.gr, z.fiz, z.mat, z.inf, z.xum, z.s_b); }