Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.04.2013, 19:30   #1
jula939393
Пользователь
 
Регистрация: 21.03.2013
Сообщений: 36
По умолчанию Ошибка в программе Си

Код:
#include <conio.h>
#include<iostream>
using namespace std;

int main() {
int min, max,cnt,i;
int *mas;
char ch;
setlocale(LC_ALL,"Russian");

printf("Введите количество переменных: ");
scanf("%d", &cnt);
mas = new int[cnt];
//ввод данных ручками
for(i=0;i<cnt;i++) {
				printf("элемент №");
				printf("%d", (i+1));
				scanf("%d\n", &mas[i]);
			    }
printf("Для нахождения максимума нажмите +\n");
printf("Для нахождения минимума  нажмите -\n");
scanf("%c\n", &ch);
switch(ch){

case '+':
	max = mas[0];
	for(i=1;i<cnt;i++){
		if(mas[i] > max){max = mas[i];};
	}
	printf("Max = ");
	printf("%d\n", max);
	int *max_d;
	max_d=new int;
	*max_d=max;

break;			
 	
case '-':
	min = mas[0];
	for(i=1;i<cnt;i++){
				if(mas[i] < min) {min = mas[i];};
				}
	printf("Min = ");
	printf("%d\n", min);
	int *min_d;
	min_d=new int;
	*min_d=min;
	break;
};
delete [] mas;
getch();
return 0;
};

Последний раз редактировалось Stilet; 11.04.2013 в 20:33.
jula939393 вне форума Ответить с цитированием
Старый 11.04.2013, 19:35   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Во-первых, оформляйте код с помощью кнопки Решетка #.
Во-вторых, в чем заключается ошибка (как она выражается)?
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 11.04.2013, 19:39   #3
jula939393
Пользователь
 
Регистрация: 21.03.2013
Сообщений: 36
По умолчанию

Не выводит результат,и первое число надо вводить в две строки
jula939393 вне форума Ответить с цитированием
Старый 11.04.2013, 19:55   #4
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Зачем использовать принтф и сканф в с++ приложении?
Код:
#include <conio.h>
#include<iostream>

using namespace std;

int
main()
{
    int cnt;
    char ch;
    int *mas;
    setlocale(LC_ALL, "Russian");
    cout << "Введите количество переменных: ";
    cin >> cnt;
    mas = new int[cnt];
    for (int i = 0; i < cnt; ++i){
        cout << "элемент №" << (i+1) << " ";
        cin >> mas[i];
    }
    cout << "Для нахождения максимума нажмите +" << endl <<
    "Для нахождения минимума нажмите -" << endl;
    cin >> ch;
    switch(ch) {
    case '+':
        int max = mas[0];
        for (int i = 1; i < cnt; ++i)
            max = (mas[i] > max) ? mas[i] : max;
        cout << "Max = "<< max << endl;
        break;
    case '-':
        int min = mas[0];
        for (int i = 1; i < cnt; ++i)
            min = (mas[i] < min) ? mas[i] : min;
        cout << "Min = " << min << endl;
    }
    delete [] mas;
    getch();
    return 0;
};
При считывании символа считывался символ 10 (т.к. после последнего числа, скорее всего, был нажат ентер, то на ввод поступили символы 10 13 43). При считывании из cin символы 10 и 13 будут пропущены.

Цитата:
первое число надо вводить в две строки
Вот это не понял.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 11.04.2013, 20:05   #5
jula939393
Пользователь
 
Регистрация: 21.03.2013
Сообщений: 36
По умолчанию

243.cpp:30: error: jump to case label
243.cpp:25: error: crosses initialization of `int max'
jula939393 вне форума Ответить с цитированием
Старый 11.04.2013, 20:17   #6
jula939393
Пользователь
 
Регистрация: 21.03.2013
Сообщений: 36
По умолчанию

Мне надо не на плюсах,а на Си
jula939393 вне форума Ответить с цитированием
Старый 11.04.2013, 21:05   #7
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Цитата:
Сообщение от jula939393 Посмотреть сообщение
Мне надо не на плюсах,а на Си
Так Ваша исходная программа не скомпилириуется си компилятором

Код:
#include <conio.h>
#include <stdlib.h>
#include <locale.h>

int
main()
{
    int cnt, i, min, max, *mas;
    char ch;
    setlocale(LC_ALL, "Russian");
    printf("Введите количество переменных: ");
    scanf("%d", &cnt);
    mas = malloc(cnt * sizeof(mas[0]));
    for (i = 0; i < cnt; ++i){
        printf("элемент №%d ", (i+1));
        scanf("%d", &mas[i]);
    }
    printf("Для нахождения максимума нажмите +\nДля нахождения минимума нажмите -\n");
    do {
        scanf("%c", &ch);
    } while (ch != '+' && ch != '-');
    switch(ch) {
    case '+':
        max = mas[0];
        for (i = 1; i < cnt; ++i)
            max = (mas[i] > max) ? mas[i] : max;
        printf("Max = %d\n", max);
        break;
    case '-':
        min = mas[0];
        for (i = 1; i < cnt; ++i)
            min = (mas[i] < min) ? mas[i] : min;
        printf("Min = %d\n", min);
    }
    free(mas);
    getch();
    return 0;
};
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ошибка в программе Александрq Помощь студентам 0 12.11.2012 00:50
ошибка в программе MKS23 Помощь студентам 1 13.06.2012 20:36
Ошибка в программе на Си++ Эммануэль Помощь студентам 20 09.04.2011 18:04
Ошибка в программе Rusl_v Общие вопросы C/C++ 4 17.12.2010 16:24
Ошибка в программе на С++ Vikelf Помощь студентам 3 15.05.2009 15:05