Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Правильно ли написана программа 
:(
    Опции темы
sasha1212
Дата 19.3.2014, 21:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 11.3.2014

Репутация: нет
Всего: нет



Почему компилятор выдает мне ошибку вот тут?

#include <stdio.h>
#include <conio.h>

void main (void)
{  \\ здесь
  float A,B,C;

  printf ("\n\t Vvedite chisla cherez probel:");
  scanf ("%d %d %d" ,&A,&B,&C);


  printf("\n\t Chisla %d i %d i %d " ,A,B,C);

  if(A/2+B/2+C/2 > 0)
  {
     if(A<B;A<C)
        A=A*A;
     else
       { 
       if(B<A;B<C)
           B=B*B;
       else
          if(C<A;C<B)
           C=C*C;
  else
     if(A<0)
          A=A/2;
             if(B<0)
                 B=B/2;
                         if(C<0)
                                C=C/2;
                         else;
             else(C<0)
                    C=C/2;
     else 
        if(B<0)
            B=B/2;
        else
            if(C<0)
               C=C/2;
printf("\n\t Rezultat : A,B,C\n");
}
getch();
}
PM MAIL   Вверх
Guinness
Дата 20.3.2014, 07:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 310
Регистрация: 21.6.2009
Где: Зеленоград

Репутация: 2
Всего: 10



int main?

Добавлено через 44 секунды
В таких случаях, было бы здорово, писать текст ошибки.
PM MAIL   Вверх
baldina
Дата 20.3.2014, 10:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 15
Всего: 101



main скорее непричем. у него количество скобок и if|else не совпадает

Добавлено через 1 минуту и 14 секунд
не говоря уж о  if(A<B;A<C)  smile

Добавлено через 4 минуты и 3 секунды
sasha1212, компилятор выдает тебе кучу ошибок и предупреждений; их количество зависит, как компилируешь - С или С++

для оформления кода пользуйся кнопочкой "код" - появятся номера строк, на которые можно ссылаться
PM MAIL   Вверх
Guinness
Дата 20.3.2014, 11:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 310
Регистрация: 21.6.2009
Где: Зеленоград

Репутация: 2
Всего: 10



Цитата(baldina @  20.3.2014,  11:00 Найти цитируемый пост)
не говоря уж о  if(A<B;A<C)  smile

Ого). Зря код не посмотрел, дошёл исключительно до строчки "//здесь"
PM MAIL   Вверх
k0rvin
Дата 20.3.2014, 11:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 442
Регистрация: 24.1.2010

Репутация: нет
Всего: 5



Код вообще отформатирован ужасно, сложно определить какой else к какому if относится. Наверняка, кроме синтаксических ошибок, есть и логические.


--------------------
“Object-oriented design is the roman numerals of computing.” — Rob Pike
All software sucks
PM MAIL   Вверх
feodorv
Дата 20.3.2014, 14:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2214
Регистрация: 30.7.2011

Репутация: 12
Всего: 45



Цитата(k0rvin @  20.3.2014,  12:32 Найти цитируемый пост)
Код вообще отформатирован ужасно, сложно определить какой else к какому if относится. Наверняка, кроме синтаксических ошибок, есть и логические. 

Да уж(((
Цитата(sasha1212 @  19.3.2014,  22:23 Найти цитируемый пост)
if(A/2+B/2+C/2 > 0)
  {
     if(A<B;A<C)
        A=A*A;
     else
       { 
       if(B<A;B<C)
           B=B*B;
       else
          if(C<A;C<B)
           C=C*C;
  else
     if(A<0)
          A=A/2;
             if(B<0)
                 B=B/2;
                         if(C<0)
                                C=C/2;
                         else;
             else(C<0)
                    C=C/2;
     else 
        if(B<0)
            B=B/2;
        else
            if(C<0)
               C=C/2;

Всё проще до безобразия:
Код

if( (A+B+C)/2 > 0)
{
  if( A<B && A<C ) 
    A=A*A;
  else if( B<A && B<C ) 
    B=B*B;
  else if( C<A && C<B ) 
    C=C*C;
}
else
{
  if( A < 0 ) A = A / 2;
  if( B < 0 ) B = B / 2;
  if( C < 0 ) C = C / 2;
}


Небольшое замечание. sasha1212, Вы упорствуете в том, что есть полусумма трёх чисел, подменяя её на сумму полузначений:
Цитата(sasha1212 @  19.3.2014,  22:23 Найти цитируемый пост)
  if(A/2+B/2+C/2 > 0)
 Полусумма же есть (A+B+C)/2. То есть начала сумма, потом делим пополам, а не сначала делим пополам, а потом суммируем. Результат может отличаться.

Добавлено через 3 минуты и 14 секунд
Цитата(sasha1212 @  19.3.2014,  22:23 Найти цитируемый пост)
  float A,B,C;

  printf ("\n\t Vvedite chisla cherez probel:");
  scanf ("%d %d %d" ,&A,&B,&C);

%d - это ввод целого числа, не float.

Добавлено через 4 минуты и 58 секунд
Цитата(sasha1212 @  19.3.2014,  22:23 Найти цитируемый пост)
printf("\n\t Rezultat : A,B,C\n");

Это есть всего лишь печать на экран строки "\n\t Rezultat : A,B,C\n", но никак не значений переменных A, B, C.


--------------------
Напильник, велосипед, грабли и костыли - основные инструменты программиста...
PM MAIL   Вверх
k0rvin
Дата 20.3.2014, 17:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 442
Регистрация: 24.1.2010

Репутация: нет
Всего: 5



Цитата(feodorv @  20.3.2014,  14:12 Найти цитируемый пост)
То есть начала сумма, потом делим пополам, а не сначала делим пополам, а потом суммируем. Результат может отличаться.

Ага, например переполнение float. =))


--------------------
“Object-oriented design is the roman numerals of computing.” — Rob Pike
All software sucks
PM MAIL   Вверх
feodorv
Дата 20.3.2014, 18:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2214
Регистрация: 30.7.2011

Репутация: 12
Всего: 45



Цитата(k0rvin @  20.3.2014,  18:21 Найти цитируемый пост)
Ага, например переполнение float. =)) 

Ну, я так понял, что float там по-ошибке вместо int smile 


--------------------
Напильник, велосипед, грабли и костыли - основные инструменты программиста...
PM MAIL   Вверх
k0rvin
Дата 20.3.2014, 18:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 442
Регистрация: 24.1.2010

Репутация: нет
Всего: 5



Цитата(feodorv @  20.3.2014,  18:01 Найти цитируемый пост)
Ну, я так понял, что float там по-ошибке вместо int

int будет еще проще переполнить.


--------------------
“Object-oriented design is the roman numerals of computing.” — Rob Pike
All software sucks
PM MAIL   Вверх
baldina
Дата 20.3.2014, 18:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 15
Всего: 101



int и переполнять не надо
PM MAIL   Вверх
feodorv
Дата 20.3.2014, 19:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2214
Регистрация: 30.7.2011

Репутация: 12
Всего: 45



Цитата(k0rvin @  20.3.2014,  19:10 Найти цитируемый пост)
int будет еще проще переполнить

Это верно, но речь шла о простых значениях вида a = -5, b = 2, c = 4. Никакого переполнения, но результат отличается (и именно в контексте данной задачи). А переполниться может и A/2+B/2+C/2.


--------------------
Напильник, велосипед, грабли и костыли - основные инструменты программиста...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0496 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.