| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Хочу научиться програмить |
| Автор: Tripl-X 29.12.2004, 17:40 |
| Народ, посоветуйте как лучше учиться программировать. А то читая книгу и сслушая лекции я научился только двум вещам: составлять алгоритмы и понимать смысл пограммы, написанной на С. Писать не получается даже елементарные программы типа калькулятора. Подсскажите, что делать? |
| Автор: NiJazz 29.12.2004, 17:59 |
| Tripl-X Вот тебе задания. Напиши программу, которая: 1. Если ввели число больше 5, то выводить "bigger", если меньше 5, то выводить "smaller". 2. Если пользователь ввёл слово "Hello!", выводит "How do you do!". Иначе ничего не выводить. Скоро приду - проверю. |
| Автор: Doc_d0s 29.12.2004, 18:28 |
| Начинай учится с программирования!!! |
| Автор: Guest 30.12.2004, 02:44 | ||
Так это как раз и есть программирование. А то чему ты хочешь научиться - это кодинг. купи самую глупую книжку по С и порешай задачки которые там есть в каждой главе . |
| Автор: bel_nikita 30.12.2004, 09:41 |
| Сюда: http://forum.vingrad.ru/index.php?showtopic=7168 |
| Автор: Tripl-X 31.12.2004, 00:05 |
| NiJazz Спервой прогой справился, а вот со второй... не понимаю в чем здесь проблема. В книжке вроде что-то похожее написано о работе состроками, а работать не хочет. Скажи что не так? #include <stdio.h> #include <conio.h> int main(void) { char A[10]; scanf("%s", &A[10]); if((A[0]='H')&&(A[1]='e')&&(A[2]=A[3]='l')&&(A[4]='o')&&(A[5]='!')) printf("How do you do!"); getch(); } |
| Автор: LuckLess 31.12.2004, 00:31 | ||||||||||
Tripl-X
= оператор присваивания!! Чтобы сравнивать на равенство нада юзать ==!! и еще есть функция strcmp() !!!
и еще имхо, лучше обЪявлять массив не char A[10]; а char A[10]={0}; т.к. в не введенных местах памяти будет лежать непонятно что..
Ты даешь уму указатель на последний элемент массива!!!! нада
|
| Автор: En_t_end 31.12.2004, 07:39 |
| Tripl-X Знаешь другие языки программирования ? |
| Автор: Tripl-X 31.12.2004, 10:42 |
| LuckLess Спасибо за помощ! У меня задача по лабе? юзер вводит строку не более 60 символов а прога должна сравнить эти символы и исключить повторяющиеся. Я что-то написал, а работает это не правильно. подскажите что не так? int main(void) { char A[60]={0}, i, k; printf("Vvedite stroku:\n"); scanf("%s", A); for(i=0; i<=60; i++) { for(k=0; i<=60; k++) if(A[i]=A[k]) printf("%c", &A[i]); } getch(); } |
| Автор: LuckLess 31.12.2004, 14:02 | ||||||
| нууу... тут у тебя 3 ошибки 1)
2)
3)Неправильно составленный алгоритм. вот тебе работающий код..
|
| Автор: Tripl-X 1.1.2005, 16:33 |
| LuckLess Спасибо. !!!С Новым Годом!!! |
| Автор: Tripl-X 3.1.2005, 16:56 | ||
| LuckLess А что надо изменить, чтобы здесь выводились повторяющиеся символы только один раз? Я пытался вставить в цикл
Но он выводит эти символы столько же раз, сколько они написаны. пытался и условие в операторе if поменять - эффект тотже. Не знаю что и придумать! подскажи что нужно поменять |
| Автор: Alexandr87 4.1.2005, 19:17 |
| можешь создать яще вектор. в вектор фигарить симовлы которые ты уже вывел как повторяющиеся, а при выводе делать обход сего массива на поиск определенного симовола |
| Автор: Tripl-X 4.1.2005, 21:50 |
| Alexandr87 А по-понятнее можно? А то я прочел и не фига не понял |
| Автор: sonic 4.1.2005, 23:40 |
| если и пихать что-то в контейнер, так это буквы, которые НЕ повторяются... удастся сэкономить на итерациях...(ИМХО) |
| Автор: Splintercell 5.1.2005, 02:31 |
| Вот вам ссылка http://childrenforum.fastbb.ru Этот форум прилагается к моему сайту www.movies2005.narod.ru Но не обращайте внимания,форум можно сказать на 80 процентов нейтрал! |
| Автор: LuckLess 5.1.2005, 02:48 | ||
| Tripl-X думал повторяющиеся тебе вообще выводить не нада.. если все тока по разу нада , то еще проще..
|
| Автор: Tripl-X 6.1.2005, 08:25 |
| А если мне нужно посчитать, сколькл раз вводятся одинаковые символы |
| Автор: LuckLess 8.1.2005, 14:01 | ||
тогда чонидь типа
|
| Автор: Tripl-X 9.1.2005, 06:27 | ||
| LuckLess Одного не пойму, для чег в строке
Стоит условие A[i+1]!=0? |
| Автор: volvo877 9.1.2005, 10:45 | ||
| Tripl-X У тебя по условию:
А если будет введено не 60, а 40? Нужно же как-то отловить момент окончания строки... |
| Автор: NiJazz 9.1.2005, 11:58 | ||
Наверное, так будет понятнее:
|
| Автор: MasterPHP 9.1.2005, 15:36 |
| Не забывайте что переменная может ихменяться в зависимотси от даты http://www.triada69.narod.ru |
| Автор: chipset 9.1.2005, 16:05 | ||
|
| Автор: LuckLess 9.1.2005, 16:30 |
| Извините за небольшой оффтоп , но просто интересно , почему в моем посте некрасивая подсветка кода , а в посте Tripl-X красивая.. |
| Автор: chipset 9.1.2005, 16:54 |
| LuckLess |
| Автор: Найли 9.1.2005, 18:35 |
| и почему я не вышла на этот фору раньше..завтра сдавать прогу...а при использовании спецификации шаблонов всё глючит =( эх...но у меня ещё вся ночь впереди, исправлю |
| Автор: Гость_LuckLess 10.1.2005, 05:23 | ||
Чтото пожумал седня про эту задачу , и понял что то что я дал неправильно работает при вводе 60 символов. вот исправленный вариант.
|
| Автор: Tripl-X 27.1.2005, 13:28 | ||
У меня задание:
Среднее арифметическое я нашел, а наиболее близкий элемент найти не получается. Как Это можно сделать? |
| Автор: Gelert 27.1.2005, 14:17 |
| Попробуй так. int flag=MAXINT; for (i=0;i<10;i++) if (abs(arif-a[i])<flag) flag=a[i]; эээ. писал в блокноте - поводу синтаксиса не уверен (проверь как пишется MAXINT)arif- это твое среднеарифметическое. flag будет твоим ответом. abs() - хранится в math.h |
| Автор: En_t_end 27.1.2005, 14:23 |
| "Не забывайте что переменная может ихменяться в зависимотси от даты" Бред - полнейший, а ещё, чтобы откомпилировать программу, надо дождаться полнолуния, иначе ничего не выйдет |
| Автор: Gelert 27.1.2005, 14:59 |
| En_t_end перед этим совершив обряд обкуривания, и освещения программы, компутера и помещения где будет производится компиляция. |
| Автор: Tripl-X 28.1.2005, 23:39 |
| Gelert А что вообще такое MAXINT? И где это проверить? Таким умным вещам не учат на первом курсе... En_t_end Gelert |
| Автор: Tripl-X 29.1.2005, 23:24 |
| Объясните пару вещей: 1. Структуры надо объявлять как глобальные или как лакальные переменные? 2. Пока я не закрываю программу, структура сохраняет значения. А при следующем запуске она их теряет. Как сделать так, чтобы значения сохранялись после выхода из программы? |
| Автор: Тиньков 4.2.2005, 14:50 |
| 1. Описание структуры как типа нужно сделать глобальным, а объявление переменных этого типа - там, где будешь использовать, т.е. хоть глобальными, хоть локальными. 2. Cамым простым (если не единственным) способом будет сохранять значения структуры в файл, а при повторном запуске восстанавливать. |
| Автор: Tripl-X 6.2.2005, 15:45 |
| Тиньков Понятно... Как работать с графикой? Я тут переписал один код из книги, а компилятор говорит, что BGI графика не поддерживается под Windows. Ведь ккак-то же создается графика, работающая в этой ОС? И еще: Массив строк обозначается наподобие str[10][10] как использовать цикл for, чтобы с приращением i увеличивался индекс строки, и выводились все символы этой строки??? Видел в книге обозначение типа *str[] что это? И как это работает??? |