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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.03.2011, 18:55   #1
VIKA1829
Пользователь
 
Регистрация: 26.10.2010
Сообщений: 36
По умолчанию на СИ

выводит ошибку
Текст программы
#include <conio.h>
#include<stdio.h>
main()
{
int a, b, c;
printf("vvedite tri chisla\n");
scanf(" %d %d %d",&a,&b, &c ) ;
if (a==b && b==c && a==c)
{
a = a;
b = b;
c = c;
}
if (a=b && b=c)
{a=b=c}
printf("Все три числа равны"\n);
else
{
a!=b!=с
}
printf("Числа не равны"\n);


printf ("%d %d %d" , a, b, c ) ;
getch();
}
задание
Составить программу поиска среди трех чисел хотя бы одной пары равных между собой чисел.
VIKA1829 вне форума Ответить с цитированием
Старый 13.03.2011, 19:03   #2
Obey-Kun
Линуксоид
Участник клуба
 
Аватар для Obey-Kun
 
Регистрация: 31.07.2009
Сообщений: 1,403
По умолчанию

тут телепатов нет. какую ошибку? что должна делать программа? какая муха вас укусила, что вы решили написать такой ужасный код?
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su
Obey-Kun вне форума Ответить с цитированием
Старый 13.03.2011, 19:10   #3
VIKA1829
Пользователь
 
Регистрация: 26.10.2010
Сообщений: 36
По умолчанию

в условии if
VIKA1829 вне форума Ответить с цитированием
Старый 13.03.2011, 19:12   #4
profi
Участник клуба Подтвердите свой е-майл
 
Регистрация: 19.11.2007
Сообщений: 1,022
По умолчанию

эх...

Код:
if (a=b && b=c)
нужно так

Код:
if (a==b && b==c)
Код толком не смотрел, первое что в глаза попало.

Вот набросал:

Код:
#include <stdio.h>

int main()
{
    int a, b ,c;

    printf("a = ");
    scanf("%d", &a);

    printf("b = ");
    scanf("%d", &b);

    printf("c = ");
    scanf("%d", &c);

    if((a == b) || (b == c) || (a == c))
        printf("YES :)");
    else
        printf("NO :(");

    return 0;
}

Последний раз редактировалось profi; 13.03.2011 в 19:19.
profi вне форума Ответить с цитированием
Старый 13.03.2011, 19:40   #5
Alkagolik
Пользователь
 
Аватар для Alkagolik
 
Регистрация: 03.08.2009
Сообщений: 77
По умолчанию

Код:
лучше было бы так
if (a==b || b==c || a==c) //усовие выполнено
{
    if (a==b) printf<<;
    if (b==c) printf<<;
    if (a==c) printf<<;  //текст вывода на Ваше усморение
}
else  printf<<"\nусловие равенства не выполнено"
запись a!=b!=с не корректна корректно так (a!=b && b!=c && a!=c) но она в коде вообще лишняя, т.е. не нужна. В моем варианте (не претендую на лучший алгоритм) ели условие выполнено, т.е. хоть одно равенство есть, то... иначе числа не равны.
также добавлю что запись
Код:
{ 
a = a;
b = b;
c = c;
}
не нужна. лишние операции, по сути не меняющие ход алгоритма (условие if выполнено)
запись
Код:
{a=b=c}
то же самое, она не меняет алгоритма т.к. подразумевается что они равны (выполнено условие if)
операции сравннения ("==","<=", ">=", "<", ">", "!=") это бинарные операции, т.е. сравниваются 2 операнда между собой. Можно и так писать "x<y<z" (не уверен, не пробовал) но лучше начинать с применения логических операций поскольку сама структура ПВМ дискретна. Поэтому запись (x<y<z) выполняется процессором в таком порядке x<y == истина\ложь, y<z == истина\ложь. Соответственно если одно из них истина, а другое ложь это может вызвать неожиданный результат выполнения.

Последний раз редактировалось Alkagolik; 13.03.2011 в 20:11. Причина: эх! блеснул знанием
Alkagolik вне форума Ответить с цитированием
Ответ


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