Форум » C/C++ » Помогите написать программу на Си » Ответить

Помогите написать программу на Си

VVS: Приветствую! Помогите мне пожалуйста. Необходимо написать программу на Си. Условие следующее: задан массив А из 30 действительных чисел. 1) Записать в массив В элементы массива А, которые не превосходят полусуммы его максимума и минимума. Распечатать все результаты. 2) Переставить местами 10 последних и 10 первых элементов массива А, сохраняя их следование. Распечатать преобразованный массив. Заранее Вам благодарен.

Ответов - 35, стр: 1 2 All

studprog: И чем надо помоч, что сделали сами?

tsts: Нужно срочно СЕГОДНЯ! Буду благодарна! Программа "Отгадай слово" В программе задается текстовая строка - слово, которое нужно отгадать пользователю. На экране печатается столько прочерков (знаков "-") сколько букв в этом слове. В каждый ход пользователь вводит одну букву. Если эта буква есть в слове, то она подставляется вместо соответствующих прочерков в слове. Иначе пользователь теряет одно очко. В начале сеанса игры у пользователя 15 очков. Написать программу, моделирующую эту игру.

studprog: tsts и каков размер благодарности?


tsts: ЛЮБОЙ КАК СКАЖЕТЕ!!!!!!!

tsts: У сына в воскресенье экзамен! Горим нет программы а еще писать отчет по ней! ПОМОГИТЕ! Буду благодарна!

tsts: Извините, мне надеяться на помощь? Ответьте пожалуйста! Жду! Очень надо!

studprog: На форуме оказывается помощь, и даются, по мере возможностей, консультации. Решение задач, написание программ - ссылка в верхней части страницы.

tsts: хоть что-рибудь! Вот текст нашей программы: не все работает, сделали как смогли! #include<stdio.h> #include<conio.h> #define SIZE 4 #define POINT 15 void Title(char *msg); void Mask(void); int GetPar(char w[SIZE]); void GetLetter(void); void Finish (char *FINAL); int YesNo(char *QUERY); char *WORD="igra otgaday slovo ballov"; char *STARTWORD="zadumai slovo is %d bukv "; char *STARTMASK="_"; char *STARTLETTER="vvedite bukvu "; char *YES="est takaya bukva " ; char *NO="net takoy bukvi "; char *LETTER="slovo ugadano"; char *NOPOINT="u vas %d ballov"; char *QUERY="povtorit [Y/N]?"; char *FINAL="rabota zavershena"; char Wordzad [SIZE]; int k=0, n=POINT; void main(void) { do { Title(WORD); GetPar(Wordzad); Mask(); GetLetter(); } while (YesNo(QUERY)); Finish(FINAL); getch(); } void Title(char *msg) { clrscr(); gotoxy(10,5);cprintf("%s%d",msg,POINT); } void Mask(void) { int i; for (i=0;i<SIZE;i++) { gotoxy(10+i,13); cprintf(STARTMASK); } } int GetPar(char w[SIZE]) /*vvod slova*/ { int i; gotoxy(10,11);cprintf(STARTWORD,SIZE); for (i=0;i<SIZE;i++) { w=getche(); /* prozhitat i otobrazit na ekran */ } getch(); gotoxy(10,11);/* ustanovit kursor*/ delline();/*udalit stroku na kotoroi kursor*/ gotoxy(10,13);cprintf(STARTMASK); } void GetLetter(void) { int i=0, k=0,n=POINT; char buk[SIZE]; char z; while((n!=0)&&(k!=SIZE)) { gotoxy(10,16),cprintf(STARTLETTER); fflush(stdin); z=getche(); for (i=0;i<SIZE;i++) { buk=z; } for(i=0;i<SIZE;i++) { if (buk==Wordzad) { gotoxy(10+i,13);cprintf("%c",Wordzad); k++; gotoxy(10,19);delline(); gotoxy(10,19);cprintf(YES);break; } } if (buk!=Wordzad) {n--; gotoxy(20,10);cprintf(NOPOINT,n); gotoxy(10,19);delline();gotoxy(10,19);cprintf(NO); } } } int YesNo(char *msg) { int c; gotoxy(10,21);cprintf("%s",msg); fflush(stdin); c=getchar(); if (c=='y'||c=='Y') return 1; else return 0; } void Finish (char *FINAL) { gotoxy(10,23),cprintf("%s",FINAL);

tsts: Подскажите что не так! Пожалуйста! некорректно работает функция GetLetter в цикле выполняются оба условия если равна и если не равно, если взять break, то нарушается поиск буквы... проблема...

tsts: Заранее признательна за помощь!

studprog: Отформатируйте листинг так, что б были отступы в теле блоков. И добавьте комментарии для каждого блока. Тогда проще будет найти ошибку. Для листинга программ на форуме, используйте моноширинный шрифт - две кнопки над формой с цифрами "123"

tsts: [pre2] #include<stdio.h> #include<conio.h> #define SIZE 4 /*задается число букв в слове*/ #define POINT 15 /*начальное количество очков*/ void Title(char *msg); void Mask(void); int GetPar(char w[SIZE]); void GetLetter(void); void Finish (char *FINAL); int YesNo(char *QUERY); char *WORD="igra otgaday slovo ballov"; char *STARTWORD="zadumai slovo is %d bukv "; char *STARTMASK="_"; char *STARTLETTER="vvedite bukvu "; char *YES="est takaya bukva " ; char *NO="net takoy bukvi "; char *LETTER="slovo ugadano"; char *NOPOINT="u vas %d ballov"; char *QUERY="povtorit [Y/N]?"; char *FINAL="rabota zavershena"; char Wordzad [SIZE]; int k=0, n=POINT; void main(void) { do { Title(WORD); /*вывод заголовка*/ GetPar(Wordzad); /*ввод слова*/ Mask(); /*вывод маски*/ GetLetter(); /*ввод буквы и обработка*/ } while (YesNo(QUERY)); Finish(FINAL); getch(); } void Title(char *msg) { clrscr(); gotoxy(10,5);cprintf("%s%d",msg,POINT); } void Mask(void) /*вывод маски слова */ { int i; for (i=0;i<SIZE;i++) { gotoxy(10+i,13); cprintf(STARTMASK); } } int GetPar(char w[SIZE]) /*ввод слова*/ { int i; gotoxy(10,11);cprintf(STARTWORD,SIZE); for (i=0;i<SIZE;i++) { w=getche(); /* prozhitat i otobrazit na ekran */ } getch(); gotoxy(10,11);/* ustanovit kursor*/ delline();/*udalit stroku na kotoroi kursor*/ gotoxy(10,13);cprintf(STARTMASK); } void GetLetter(void) /* ввод буквы и обработка */ { int i=0, k=0,n=POINT; char buk[SIZE]; /*массив из введенной буквы*/ char z; /*введенная буква*/ while((n!=0)&&(k!=SIZE)) { gotoxy(10,16),cprintf(STARTLETTER); z=getche(); /*ввод буквы*/ for (i=0;i<SIZE;i++) /*создаем массив каждый элемент которого равен введенной букве*/ { buk=z; } for(i=0;i<SIZE;i++) { if (buk==Wordzad) /*если есть совпадения то в мвску помещается угаданная буква*/ /* счетчик угаданных букв увеличивается*/ { gotoxy(10+i,13);cprintf("%c",Wordzad); k++; gotoxy(10,19);delline(); gotoxy(10,19);cprintf(YES);break; } } if (buk!=Wordzad) /*если ввденная буква не совпадает с буквой слова то счетчик очков уменьшается*/ { n--; gotoxy(20,10);cprintf(NOPOINT,n); gotoxy(10,19);delline();gotoxy(10,19);cprintf(NO); } } } int YesNo(char *msg) { int c; gotoxy(10,21);cprintf("%s",msg); fflush(stdin); c=getchar(); if (c=='y'||c=='Y') return 1; else return 0; } void Finish (char *FINAL) { gotoxy(10,23),cprintf("%s",FINAL); } [/pre2]

tsts: все функции работают корректно. Не получается GetLetter. Работает либо подсчет не угаданных букв, либо вывод угаданной буквы в маске (если поставить break в конце условия) И еще вопрос! Скажите какая здесь ОДЗ? Благодарю

studprog: Сама программа неверна по структуре. Нужно сделать два массива или две строки если писать под C++. В одной строке хранить загаданное слово, а другую заполнить прочерками. При вводе символа, следует делать проверку на наличие этого символа, и если символ существует в загаданном слове, то в строке с прочерками на соответствующие места копировать отгаданный символ. Всё это в цикле пока в строке с прочерками будет оставаться символ этого прочерка.

tsts: у нас turbo с помогите с листингом программы пожалуйста поверьте мне

studprog: tsts - больше ничем помочь не могу.

tsts: скажите есть здесь ОДЗ?

studprog: Я не знаю, что такое ОДЗ.

tsts: область допустимых значений

tsts: я вижу вы хороший человек, помогите пожалуйста, безвыходная ситуация...на понимаю как это сделать. Работа со строками...

tsts: покажите пожалуйста фрагмент со строками в цикле! как распознвть символ и как заменить прочерк в нужном месте на букву!

tsts: помогите пожалуйста со строками в цикле! как распознать букву в строке и как заменить СООТВЕТСТВУЮЩИЙ прочерк на букву!

studprog: "область допустимых значений" чего? В программировании подобный анализ существенно отличается от анализа функций в математике, и является системным ограничением, а не алгоритмическим. Те буквы, которые можно вводить и составляют пространство входных данных.

studprog: Судя по вашим вопросам, нет смысла тратить на вас время. Всё равно вы этого не поймёте.

tsts: Не бросайте меня! пожалуйста! Помогите со строками!

tsts: Значит ОДЗ входных данных -любые символы.

studprog: Любые, кроме управляющих.

tsts: Прошу Вас, помогите с циклом! Еще отчет писать! программа не работает...

studprog: Ссылка в верней части форума. Также, вы легко найдёте массу "помошников" по запросу "помощь студентам программирование" и т.п.

tsts: Да, да я поняла! Вопрос времени! Как долго пишется программа? Если Вы согласитесь мне помочь, скажите сколько это стоит и как долго ждать? Вопрос времени! Если сейчас оплатить, то когда будет ответ? Нужно как можно быстрее!

studprog: На форуме не обсуждаются заказы программ. На сайте есть форма, заполните её.

tsts: благодарю... за общение

tsts: подскажите еще пожалуйста, как принудительно выйти из цикла for и начать его сначала?

studprog: Если вы считаете, что так нужно сделать, значит вы не усвоили азы программирования. Завершить цикл можно оператором break, а начать сначала можно только новой иниициализацией. Но в вашей задаче такого быть не должно. Ни один адекватный преподаватель не поставит зачёт за подобную работу.

tsts: Да, есть над чем задуматься! Буду работать! Спасибо!



полная версия страницы