Member
Статус: Не в сети Регистрация: 03.01.2004 Откуда: Питер
bao ну ладно, фиг с ним. Нет ни времени ни желания разбираться, счас кину ссылку в личку на тот BC3.1, который я юзаю, там еще ворох лаб каких-то внутри, так что не пугайся
force_sk далеко не все пишут под винду и вообще под PC, есть довольно широкая область где обычный C еще очень широко применяется, а BC3.1 прекрасно подходит, чтобы отлаживаться на PC, прежде чем работать с железом.
_________________ Здесь так мало тех, с кем легко говорить,
Еще меньше тех, с кем не страшно молчать (c)
Advanced member
Статус: Не в сети Регистрация: 09.03.2004 Откуда: Кишинёв
Lord_of_Darkness писал(а):
далеко не все пишут под винду и вообще под PC, есть довольно широкая область где обычный C еще очень широко применяется, а BC3.1 прекрасно подходит, чтобы отлаживаться на PC, прежде чем работать с железом.
Я тоже так раньше думал, но работать с досом в наше время напряжно: винхп и дос вещи несовместимые. А отлаживать некоторый код можно и под винду - я так всегда делаю. Например гцц с мингв(я вот этим пользуюсь). Если кто не видел, то попробуйте.
Да уж, отлаживаться под DOS - это изврат. Если так необходимо отлаживать на PC, в Visual C++ в настройках проекта устанавливаешь 'Compile as C code' и дебажишь.
Member
Статус: Не в сети Регистрация: 31.08.2005 Откуда: Мир
Вот мне надо чтобы в этом кольцевой очереди был указатель начала, указатель конца. Элементы должны добавляться в конец(хвост) а удаляться сначала (головы)...как мне изменить мою прогу? оНа только с одним указателем сейчас. Заранее благодарен )
Member
Статус: Не в сети Регистрация: 09.08.2005 Откуда: Земля
Помогите исправить прогу от багов:
Вот что нужно получить:
Y = (U + T) * (S + 2),
где S - произведение положительных элементов массива;
T - номер наименьшего по модулю элемента массива;
U - количество ненулевых элементов массива.
Массив вводится на 10 элементов.
S=1;{ for(i=0;i<n;i++) if(f[i]>=0) S=S*f[i]; } printf("\n\Произведение положительных элементов массива : S=%.2lf",S); fprintf(R,"\Произведение положительных элементов массива : S=%.2lf",S); min=f[0]; T=0; for(i=0;i<n;i++) if(abs(f[i])<min) min=abs(f[i]); T=i; printf("\n\Номер наименьшего по модулю элемента массива T=%d",T); fprintf(R,"\n\Номер наименьшего по модулю элемента массива T=%d",T); for(i=0;i<n;i++) if(f[i]<0 || f[i]>0) U=0; else U=i; printf("\nКоличество ненулевых элементов массива U=%d",U); fprintf(R,"\n\n\nКоличество ненулевых элементов массиваU=%d",U); Y=(U+T)*(S+2); printf("\n\n\tИсходный одномерный массив"); for(i=0;i<n;i++) printf("\n\t%.2lf",f[i]); printf("\n\n ‚ Ваш результат Y=%.2lf",Y); fprintf(R,"\n\n ‚Ваш результат Y=%.2lf",Y); printf("\Результат можно посмотреть в файле rez2.txt\n"); } else printf("ЌҐ Їp ўЁ«м® ®Ўмпў«Ґ ¬ ббЁў"); return; fclose(R); }
Так вот у меня косяки при считании произведения положительных элементов массива:
Например, когда вводишь массив {-2 0 -3 0} он считает произведение=1 и
А номер наименьшего СИ считает вообще криво.
Уважаемые оверы посмотрите мою прогу!!(Первый опыт работы с массивом)
Member
Статус: Не в сети Регистрация: 31.08.2005 Откуда: Мир
Alex12 Спасибо большое )
У тебя случайно нет аси ?
Да, и ещё такой вопрос..как выполнить - прокрутку очереди,
Это надо чтобы элемент в начале перешел в конец списка и все элементы соответственно сдвигаются ?
Вот как это реализовать...
Member
Статус: Не в сети Регистрация: 18.08.2005 Откуда: Новороссийск
Блин, что-то я не пойму, такая форма записи ведь допустима или нет?
Копилятор ( VC 8.0) выдаёт ошибку illegal digit '8' for base '8', не пойму, что ему не нравится.
Причём число вида: 02 компилятор пропускает, а 08 и 09 ему не нравится, что за фигня.
Код:
const int ST = 16;
int P01[ST] = {08,08,10,10,10,10,10,08,10,08,10,10,00,00,00,00}; int P02[ST] = {10,10,01,06,08,00,00,10,06,10,08,08,10,04,10,00}; int P03[ST] = {01,00,05,08,06,04,06,03,08,00,00,00,02,00,04,00}; int P04[ST] = {02,00,00,00,05,00,08,06,00,06,06,06,08,10,08,00}; int P05[ST] = {05,00,06,00,02,05,02,00,04,00,04,05,01,06,06,00}; int P06[ST] = {00,01,04,00,00,02,00,04,00,05,00,03,06,00,00,00}; int P07[ST] = {00,00,08,02,00,08,00,02,00,00,02,01,00,08,03,00}; int P08[ST] = {00,05,00,00,00,06,00,00,00,04,00,00,00,00,00,00}; int P09[ST] = {06,00,00,00,00,00,00,05,05,00,00,04,00,00,00,00}; int P10[ST] = {00,02,00,00,03,00,05,01,00,00,00,02,05,05,05,00}; int P11[ST] = {03,00,02,00,00,03,00,00,01,00,05,00,03,00,00,00}; int P12[ST] = {00,00,00,05,04,00,00,00,00,00,00,00,00,00,00,00}; int P13[ST] = {00,06,00,00,00,00,00,00,00,00,00,00,00,00,00,00}; int P14[ST] = {00,00,00,04,00,00,00,00,02,01,00,00,00,00,00,00}; int P15[ST] = {04,00,00,01,01,00,00,00,00,00,00,00,00,00,00,00}; int P16[ST] = {00,00,00,00,00,00,04,00,00,02,00,00,00,00,00,00}; int P17[ST] = {00,04,00,00,00,00,00,00,00,00,00,00,00,00,00,00}; int P18[ST] = {00,00,00,03,00,00,01,00,00,00,00,00,00,00,00,00}; int P19[ST] = {00,00,00,00,00,00,03,00,00,00,00,00,00,00,00,00}; int P20[ST] = {00,00,03,00,00,00,00,00,00,00,00,00,00,00,00,00}; int P21[ST] = {00,00,00,00,00,00,00,00,03,00,00,00,00,00,00,00}; int P22[ST] = {00,03,00,00,00,00,00,00,00,00,00,00,04,00,00,00}; int P23[ST] = {00,00,00,00,00,00,00,00,00,00,03,00,00,00,00,00}; int P24[ST] = {00,00,00,00,00,00,00,00,00,03,00,00,00,00,00,00}; int P25[ST] = {00,00,00,00,00,01,00,00,00,00,00,00,00,00,00,00}; int P26[ST] = {00,00,00,00,00,00,00,00,00,00,00,01,00,00,00,00}; int P27[ST] = {00,00,00,00,00,00,00,00,00,00,00,00,00,03,01,00}; int P28[ST] = {00,00,00,00,00,00,00,00,00,00,00,00,00,02,00,00}; int P29[ST] = {00,00,00,00,00,00,00,00,00,00,00,00,00,01,00,00}; int P30[ST] = {00,00,00,00,00,00,00,00,00,00,00,00,00,00,02,00};
Если не допустима, то объясните пожалуйста почему?
Member
Статус: Не в сети Регистрация: 30.01.2006 Откуда: Минск
pretorian, нету. Насчет прокрутки- в смысле чтобы первый стал последним, а второй первым? Если так- делается в две операции, подумай, это очень просто.
-=alex-forewer=-, если число начинается с 0, оно считается записанным в восьмиричной системе. Соответсвенно, числа 8 там быть не может. Если у тебя десятичные числа- пиши без 0.
Последний раз редактировалось Alex12 20.11.2006 0:54, всего редактировалось 1 раз.
Member
Статус: Не в сети Регистрация: 31.08.2005 Откуда: Мир
[quote="Alex12"]pretorian, нету. Насчет прокрутки- в смысле чтобы первый стал последним, а второй первым? Если так- делается в две операции, подумай, это очень просто.
Не мне кажется это нужно чтобы все элементы сместились...например была очередь из элементов:
1 2 3 4
после прокрутки станет:
4 1 2 3
Member
Статус: Не в сети Регистрация: 30.01.2006 Откуда: Минск
pretorian, если так -смещать неудобно. Потребуется цикл, т.к. на последнее место должен стать предпоследний, который можно найти только идя от первого.
В твоем варианте ты смещаешь в противоположную сторону, т.е. из 1 2 3 4-2 3 4 1. Только зачем так извращенно? Достаточно двух строк last=first; first=first->next;. Это я и имел ввиду.
Member
Статус: Не в сети Регистрация: 31.08.2005 Откуда: Мир
Alex12 писал(а):
pretorian, если так -смещать неудобно. Потребуется цикл, т.к. на последнее место должен стать предпоследний, который можно найти только идя от первого. В твоем варианте ты смещаешь в противоположную сторону, т.е. из 1 2 3 4-2 3 4 1. Только зачем так извращенно? Достаточно двух строк last=first; first=first->next;. Это я и имел ввиду.
Да, действительно проще )
Ещё проблема...после того как добавил элементы(ы) удалять если..то когда все удалились и попробовать снвоа удалит, то вылетает с ошибкой.
Я подправил эту функцию:
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения