Консоль закрывается сразу после старта - C (СИ)

  1. Здравствуйте. Я начинающий программист и у меня возникла проблема. Ввёл программу (правильную, без ошибок), скомпилировал её, а когда уже грузится консоль, то при выдаче самого результата она исчезает. Т.е. результат программа выдаёт, но его можно увидеть только за долю секунды. Как исправить? Помогите, пожалуйста. Visual Studio 2010 Ultimate, Win 7.


textual

Код к задаче: «Консоль закрывается сразу после старта - C (СИ)»

#include <conio.h>
#include <iostream>
 
const int N = 10;
 
int main()
{
    int A[N];
    int    i, max1, max2, max3;
    for (i = 0; i<N; i++)
        scanf("%d", &A[i]);
    max1 = -1; max2 = -1; max3 = -1;
    for (i = 1; i<N; i++)
    {
        if (A[i] > max1)
        { // новый max1 
            max3 = max2;
            max2 = max1;
            max1 = A[i];
        }
        else
        if (A[i] > max2)
        { // новый max2 
            max3 = max2;
            max2 = A[i];
        }
        else
        if (A[i] > max3) // новый max3 
            max3 = A[i];
    }
    printf("%d  %d  %d", max1, max2, max3);
    return 0;
    getchar();
}

СДЕЛАЙТЕ РЕПОСТ

15   голосов, оценка 3.800 из 5



Похожие ответы
  1. День добрый. Я - первокурсник, не так давно начал изучать язык С. И вот выдали мне тему курсового проекта: реализация игрового приложения "Пятнашки" в консоли на языке С. Квадратные глаза и n-ное кол-во кирпичей - вот так можно описать мое состояние. Срок сдачи приближается и я решился обратиться за помощью. Посоветуйте, с чего вообще начинать, какую литературу и какие темы изучать? И, может быть, у кого-нибудь завалялась готовая программа? =) Заранее спасибо.

  1. Вчера вечером решил продолжить изучать С++, что бы вспомнить основы начал с СИ и собрался написать игру крестики нолики. Игра практически готова и даже работает для режима "2 игрока", но я пока не знаю, как реализовать систему ходов компьютера и систему сохранений. Подкиньте идею, как можно реализовать такие системы. P.S. Вот исходник: Кликните здесь для просмотра всего текста 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 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 ///////////////////////////////// // Program : крестики - нолики // // Autor : Бесчастных Денис    // /////////////////////////////////   #include #include #include #include #include #include   #define MAX_SAVES 3   HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE); //Получаение дескриптора устройства стандартного вывода static int hightMenu = 1; /*     1 - Начать игру     2 - Загрузить игру     3 - Как играть?     4 - Выход */ static int lowMenu = 1; /*     1 - 2 игрока     2 - Против компьютера     3 - Назад */ static int inGameMenu = 1; /*     1 - Продолжить игру     2 - Сохранить игру     3 - Как играть?     4 - К главному меню     5 - Выход */ static int turn; /*     чья очередь ходить     1 - 1-ый игрок     2 - 2-ой игрок */ static int loadMenu = 1; static int win = 0; static int numberMoves = 0; static int gamemode = -1; /*     0 - 2 игрока     1 - против компьютера */ static char gamer1 = (turn == 1) ? 'X' : 'O'; static char gamer2 = (turn == 2) ? 'X' : 'O'; static int coordX = 1; static int coordY = 1; static int gameMatrix[3][3]; static char form[14][15]; static int saveNumber = 0; static int EXIT = 0; static int saves[MAX_SAVES][11]; char bufRus[256]; FILE* FORM; FILE* SAVES;   ///Список прототипов void paintComponent();       //делает отрисовку после загрузки void setGame(int);           //устанавливает игру по сохранению void saveGame();             //сохраняет текущую игру void isWin();                //функция определения победы char *Rus(const char *text); //функция вывода русских букв void readForm();             //читает форму void generateForm();         //создает форму, если ее нет void printForm();            //выводит форму void setForm(int, int, int); //устанавливает в форму новое значение void readSaves();            //читает сохранения void fileSystem();           //открывает/создает системные файлы void printHelp();            //выводит справку void printHightMenu();       //выводит главное меню void printLowMenu();         //выводит меню новой игры void printGame();            //выводит игровое окно void printInGameMenu();      //выводит меню во время игры void printLoadMenu();        //выводит меню загрузки void printWin();             //вывод победы void hightMenuCycle();       //цикл главного меню void lowMenuCycle();         //цикл меню новой игры void gameCycle();            //цикл игры void inGameCycle();          //цикл меню во время игры void loadMenuCycle();        //цикл меню загрузки   void paintComponent() {     for(int x = 1; x < 4; x++)         for(int y = 1; y < 4; y++)             if (gameMatrix[x - 1][y - 1]) setForm(gameMatrix[x - 1][y - 1], x, y); }   void setGame(int n) {     numberMoves = 0;     for(int i = 0; i < 3; i++)         for(int j = 0; j < 3; j++)         {             gameMatrix[i][j] = saves[n][i * 3 + j];             if (gameMatrix[i][j]) numberMoves++;         }     turn = saves[n][9];     gamemode = saves[n][10];     win = 0;     if (numberMoves % 2)     {         gamer1 = (turn == 2) ? 'O' : 'X';         gamer2 = (turn == 2) ? 'X' : 'O';     }     else     {         gamer1 = (turn == 1) ? 'O' : 'X';         gamer2 = (turn == 1) ? 'X' : 'O';     } }   void saveGame() {     SAVES = fopen("saves.txt", "w");     if (saveNumber < MAX_SAVES)     {         saveNumber++;         fprintf(SAVES, "%d ", saveNumber);         for(int i = 0; i < saveNumber - 1; i++)                 for(int j = 0; j < 10; j++)                 fprintf(SAVES, "%d ", saves[i][j]);         for(int i = 0; i < 3; i++)             for(int j = 0; j < 3; j++)             {                 fprintf(SAVES, "%d ", gameMatrix[i][j]);                 saves[saveNumber - 1][i * 3 + j] = gameMatrix[i][j];             }         fprintf(SAVES, "%d %d", turn, gamemode);         saves[saveNumber - 1][9] = turn;         saves[saveNumber - 1][10] = gamemode;         fclose(SAVES);         system("cls");         printf(Rus("Игра сохранена!\n"));         system("pause");     }     else     {         system("cls");         printf(Rus("Нет места для сохранения!\n"));         system("pause");     } }   void isWin() {     for(int j = 0; j < 3; j++)     {         if (gameMatrix[j][0] == gameMatrix[j][1] && gameMatrix[j][1] == gameMatrix[j][2]) win = gameMatrix[j][0];         if (win) break;         if (gameMatrix[0][j] == gameMatrix[1][j] && gameMatrix[1][j] == gameMatrix[2][j]) win = gameMatrix[0][j];         if (win) break;     }     if (win) return;     if ((gameMatrix[0][0] == gameMatrix[1][1] && gameMatrix[1][1] == gameMatrix[2][2]) || (gameMatrix[2][0] == gameMatrix[1][1] && gameMatrix[1][1] == gameMatrix[0][2])) win = gameMatrix[1][1]; }   char *Rus(const char *text) {     CharToOem(text,bufRus);     return bufRus; }   void readForm() {     for(int i = 0; i < 14; i++) fgets(form[i], 15, FORM); }   void generateForm() {     char c01 = (char)201; //левый вырхний угол     char c02 = (char)187; //правый верхний угол     char c03 = (char)200; //нижний левый угол     char c04 = (char)188; //нижний правый угол     char c05 = (char)205; //равно горизонтальное     char c06 = (char)186; //равно вертикальное     char c07 = (char)203; //верхний тристоронник     char c08 = (char)202; //нижний тристоронник     char c09 = (char)204; //левый тристоронник     char c10 = (char)185; //правый тристоронник     char c11 = (char)206; //четверосторонник     char s00[14] = {c01, c05, c05, c05, c07, c05, c05, c05, c07, c05, c05, c05, c02, '\0'};     char s01[14] = {c06, ' ', ' ', ' ', c06, ' ', ' ', ' ', c06, ' ', ' ', ' ', c06, '\0'};     char s02[14] = {c06, ' ', ' ', ' ', c06, ' ', ' ', ' ', c06, ' ', ' ', ' ', c06, '\0'};     char s03[14] = {c06, ' ', ' ', ' ', c06, ' ', ' ', ' ', c06, ' ', ' ', ' ', c06, '\0'};     char s04[14] = {c09, c05, c05, c05, c11, c05, c05, c05, c11, c05, c05, c05, c10, '\0'};     char s05[14] = {c06, ' ', ' ', ' ', c06, ' ', ' ', ' ', c06, ' ', ' ', ' ', c06, '\0'};     char s06[14] = {c06, ' ', ' ', ' ', c06, ' ', ' ', ' ', c06, ' ', ' ', ' ', c06, '\0'};     char s07[14] = {c06, ' ', ' ', ' ', c06, ' ', ' ', ' ', c06, ' ', ' ', ' ', c06, '\0'};     char s08[14] = {c09, c05, c05, c05, c11, c05, c05, c05, c11, c05, c05, c05, c10, '\0'};     char s09[14] = {c06, ' ', ' ', ' ', c06, ' ', ' ', ' ', c06, ' ', ' ', ' ', c06, '\0'};     char s10[14] = {c06, ' ', ' ', ' ', c06, ' ', ' ', ' ', c06, ' ', ' ', ' ', c06, '\0'};     char s11[14] = {c06, ' ', ' ', ' ', c06, ' ', ' ', ' ', c06, ' ', ' ', ' ', c06, '\0'};     char s12[14] = {c03, c05, c05, c05, c08, c05, c05, c05, c08, c05, c05, c05, c04, '\0'};     fprintf(FORM, "%s\n", s00);     fprintf(FORM, "%s\n", s01);     fprintf(FORM, "%s\n", s02);     fprintf(FORM, "%s\n", s03);     fprintf(FORM, "%s\n", s04);     fprintf(FORM, "%s\n", s05);     fprintf(FORM, "%s\n", s06);     fprintf(FORM, "%s\n", s07);     fprintf(FORM, "%s\n", s08);     fprintf(FORM, "%s\n", s09);     fprintf(FORM, "%s\n", s10);     fprintf(FORM, "%s\n", s11);     fprintf(FORM, "%s\n", s12); }

  1. После написания кода программа выполняется и сразу закрывается. Как это исправить?

  1. подскажите как реализовать консольное меню на Си чтоб в консоли можно было перемещатся между пунктами стрелками или просто нажымая цыфры

  1. Code::Blocks 16.01! Програмка из книги Кэрригана и Ритчи - перевод шкалы Фаренгейта в шкалу ЦельсияC1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 #include       int main() {     int min, max, celsius, fahr, st;     min=0;     max=300;     st=20;     fahr=min;         while (fahr<=max);         {         celsius=5*(fahr-32)/9;         printf("%d\t%d\n", fahr, celsius);         fahr = fahr+st;         }       return 0; }пишу всё по примеру, однако при компиляции, которая проходит тихо, консоль пустая, хотя смею расчитывать на два столбика с данными. Что не так? Спасибо

  1. Написать консольное приложение на си, именно проверку таблицы умножения без использования цыкла фор, использовать ранд, всего 10 вопросов, при вводе првильного ничего не писать а перейти к следующему, а при не правильном написать ошибку и продолжить выполнение. В конце вывести на экран результат. Хорошо\Плохо\Отлично. Помогите пж ибо не успеваю

  1. Здравствуйте! Каким образом на си реализован вывод в консоль? Понятно что он основан на функции write . Функция putc основана на другой функции flushbuf, в которой для хранения символов создаются буфферы и обрабатывается структура FILE. Вот здесь я не понимаю, является ли эта функция функцией буфферизированого ввода или нет, если да , то не понятно, когда будет выводится этот буффер.

  1. Задание: вывести все символы до 1-го двоеточия включительно Проблема в том, что если в веденных символах нет ":"-двоеточия, то вместе с результатом выводятся непонятные лишние символы. Я поняла, что что похоже ошибка в заполнении последнего элемента, но не знаю как исправить int i, n, flag = 0; printf("\nPlease,enter n: "); scanf("%d", &n); char temp; printf("Please,enter string\n"); for (i = 1; i < n-1; i++) { if((temp=getche()) == ':' && flag == 0) { a[i]=temp; a[i+1] = '\0'; flag = 1; } else if(temp != ':' && flag == 0) a[i]=temp; } } printf("\n\nResult: %s", a);

  1. Что нужно сделать, чтобы программу запускать не через обычные input.txt и output.txt а через консоль?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 #define _CRT_SECURE_NO_WARNINGS #include #include #include #include #include "stack.h"           int main() {     char a, s[1000], s1[1000] = {0};     Stack *S;     long long int g=0;     int d, k = 0;     struct list *p, *t;     freopen("input.txt", "r", stdin);     freopen("output.txt", "w", stdout);     S = create();     scanf("%s", s);     postf(s, s1, S);     printf("%s", s1);     printf("\n");     schet(s1, &g, S);     printf("%I64d", g);     return 0; }Вот допустим программа (функции постф и счет написаны в другом файле). Через инпут и аутпут все нормально работает, но нужно сделать, чтобы работало вроде как через консоль или что-то такое.