HPC.ru lite - Все форумы
Форум: [OFF] Оффтопики не про КПК
Тема: Помогите чуть с кодом))
Страницы: [1] 2
[Ответить]
**kirill [09.04.2009 12:48] Помогите чуть с кодом)):
Задача
Даны целые массивы A, B и значения R и F. Каждый массив пpеобpазовать по пpавилу: если отpицательных элементов в массиве больше 2, то пеpвый по поpядку отpицательный компонент заменить на значение R (для массива А) и значение F (для массива B). В пpотивном случае массив оставить без изменений.
Мой вопрос)
Почему у меня функция преобразования не работает?
Знаю что немнорго по извращенски написанно, и можно оптимальней сделать... Но я по глупости сначало сделал подобную задачу одногрупнице. Теперь два одинаковых кода запалить могут. Компилятор visual C++
кодик
#include <iostream>
using namespace std;
const int I=5;
void vvodmass (int [I], char);
void vvodper (int, char);
void preobr (int , int[I]);
void pech (int [I]);
int main()
{
int A[I], B[I], R, F;
R=0;
F=0;
vvodmass(A,'A');
vvodmass(B,'B');
vvodper(R,'R');
vvodper(F,'F');
preobr(R,A);
preobr(F,B);
pech(A);
cout<<"\n";
pech(B);
return 0;
}
void vvodmass (int M[I], char im)
{
cout<<"vvodim macciv"<<im<<"\n";
for (int i=0; i<I; i++)
{
cout<<"vvodim element ["<<i<<"]";
cin>>M;
}
}
void vvodper (int K, char im)
{
cout<<"vvedite 4iclo dla preobrazovaniya"<<im;
cin>>K;
}
void preobr (int K, int M[I])
{
int y, t;
y=0;
t=0;
for (int i=0; i<I; i++)
{
if (M<0)
y++;
}
for (int i=0; i<I; i++)
{if ((y>2)&& (t=0))
{M=K;
t++;};
}
}
void pech (int M[I])
{
for (int i=0; i<I; i++)
{
cout<<M;
}
}
**kirill [09.04.2009 12:56] :
форматирование не сохранилось...
В архиве .cpp))
[К сообщению приложены файлы: zad2.zip (1 кб)]
Daess [09.04.2009 16:51] :
На первый взгляд у тебя преобразование вообще не то делает. Тебе надо заменить первый отрицательный элемент, а ты меняешь просто первый элемент массива, причем в особо извращенной форме:
**kirill писал(а):
for (int i=0; i<I; i++)
{
if (M<0)
y++;
}
Вот тут посчитал отрицательные, согласился.**kirill писал(а):
if ((y>2)&& (t=0))
{M=K;
t++;};
}
А это условие: "если отрицательных больше двух и какое-то t равно нулю, то текущий элемент массива заменить указанным числом K" - что в общем-то совсем не то. Если учесть, что прокатит только первая итерация цикла, после чего t увеличится, то будет изменен первый элемент, а не первый отрицательный. Вот.
**kirill [09.04.2009 17:20] :
ой... а я не заметил что ты ответил... СПАСИБО
ЗАработало только что. Пришлось правда на работе найти громадный талмуд по С++ и вкуривать где и в какой функции накосячил. Переделал полностью "ввод переменной"
) Ну и сам отбор поправил.. там вообще глупо накосячил...
Ну это уже крыша поехала немного. На бумажке прорисовал кучу всего, а в код забыл вставить ))
**kirill [09.04.2009 19:51] :
А я не блок схему...
Просто алгоритм расписывал на бумажке))))
Darkcat [10.04.2009 00:07] :
Нечто
Под БГ косим? Они тоже за год понакодят, потом 5 лет сервис-паки клепают...
Новый папа [10.04.2009 00:19] :
Нечто писал(а):
вот поэтому труъ программеры имеют прямой вывод из башки в программные коды, а всякие блок-схемы рисуют потом по факту в случае требования оных )))
это труламеры так делают 
не слушай его, Кирилл
Нечто писал(а):
Никогда ничего на бумажке не могу записать. Не думается просто с бумажкой. Вот понакодить и разбираться - совсем другое дело )
Ой
Про труламеров я погорячился 
P.S. У меня на столе блокнот и большая тетрадь. Пользуюсь регулярно.
**kirill [10.04.2009 00:44] :
Новый папа
я при глюках беру бумажку и полностью на бумажке рассписываю как будет работать хренатень будет. Где то на втором элементе цикла понимаю в чем ошибка и исправляю..
Просто понял что у меня с програмированием какие-то траблы в голове непонятные. Поэтому теперь за чай и шоколадки прорешиваю контрольные всем одногрупникам. И мне тренировка и руконабитие и им "польза"....
Daess [10.04.2009 06:36] :
Хм, я очень редко пользуюсь подручными средствами, нет лучше тетради, чем открытое окно IDE
А если что-то не пашет - вот вам ошибки, предъявляемые компилятором + режим пошаговой отладки - враг не пройдет!
**kirill [10.04.2009 08:58] :
Daess
Ну у меня то задача пока руку набить и научиться так же как компилятор думать)))
[Ответить]
[Вперед >]