![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
ess399 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 18.11.2009 Репутация: -1 Всего: -2 |
не пойму в чем ошибка блок схемы
код:#include<string.h> #include<conio.h> #include<stdio.h> #include <ctype.h> struct STUDENT { char kafedra[20],famil[20],spec[20]; int ocenka; }; int main() { int n,i,j,s, count; char c; struct STUDENT arr[10]; struct STUDENT temp; i=0; while(c!='N') { puts("Vvesti dannue pro studenta(Y/N)"); scanf("%s",&c); if (tolower©=='n') {break;} printf("Vvedite famil %u stud-",i+1); scanf("%s",&arr[i].famil); printf("Vvedite kafedru %u stud-",i+1); scanf("%s",&arr[i].kafedra); printf("Vvedite ocenku %u stud-",i+1); scanf("%d",&arr[i].ocenka); printf("%s,%s,%d\n",arr[i].famil,arr[i].kafedra,arr[i].ocenka); i=i+1; printf("%d\n",i);} n=i; // ñîðòèðîâêà for(i=0; i<n-1; i++) for(j=i+1; j<n; j++) { if(!strcmp(arr[i].kafedra, arr[j].kafedra) && i==j-1) { i++; j++; } if(!strcmp(arr[i].kafedra, arr[j].kafedra) && i!=j-1 && j<n) { temp=arr[i+1]; arr[i+1]=arr[j]; arr[j]=temp; i++; } } s=0; count=0; printf("Kafedra: %s\n", arr[0].kafedra); for(i=0; i<n; i++) { printf("%s\n", arr[i].famil); count++; s+=arr[i].ocenka; if(strcmp(arr[i].kafedra, arr[i+1].kafedra) && i!=n-1) { printf("Srednii ball kafedry %s: %f\n", arr[i].kafedra, (float)s/count); printf("Kafedra: %s\n", arr[i+1].kafedra); s=0; count=0; } } printf("Srednii ball kafedry %s: %f", arr[i-1].kafedra, (float)s/count); getch(); } Присоединённый файл ( Кол-во скачиваний: 16 ) ![]() |
|||
|
||||
null56 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 721 Регистрация: 19.3.2008 Репутация: нет Всего: 12 |
|
|||
|
||||
Luyan |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 180 Регистрация: 3.12.2008 Репутация: 2 Всего: 7 |
![]() tolower - что это?, там должна быть с попробуйте так:
и функция у вас int main() - поэтому поставьте в конце return 0; Это сообщение отредактировал(а) Luyan - 21.11.2009, 22:06 |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
это особенность форума заменять в тексте (с) на ©. кстати это тоже одна из причин для оформления тегами кода. |
|||
|
||||
ess399 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 18.11.2009 Репутация: -1 Всего: -2 |
код то рабочий, блок схема алгоритма составлена неверно ,преподователь сказал ,только незнаю почему ,помоему схема составлена нормально.
|
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
ну если Вы игнорируете замечания и не проявляете усилий для облегчения помощи Вам, то вероятность этой помощи очень мала.. так как никто ломать глаза об приведенный неоформленный код не хочет.. К тому же еще и суть вопроса не ясна.. P.S. файл аттача (.docx) у меня не открывается.. может переведете в более распространенный формат ? Это сообщение отредактировал(а) mes - 22.11.2009, 12:45 |
|||
|
||||
Luyan |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 180 Регистрация: 3.12.2008 Репутация: 2 Всего: 7 |
Присоединённый файл ( Кол-во скачиваний: 23 ) ![]() |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
Luyan, спасибо за конвертацию.
ess399, в коде программы явно виден ввод и вывод.. а в блок-схеме отсутствуют соответствующие элементы.. К тому же элементам "процесс" не соответствует их функциональность. Вот к примеру что за процесс "сортированный список" ? |
|||
|
||||
ess399 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 18.11.2009 Репутация: -1 Всего: -2 |
#include<string.h>
#include<conio.h> #include<stdio.h> #include <ctype.h> struct STUDENT { char kafedra[20],famil[20],spec[20]; int ocenka; }; int main() { int n,i,j,s, count; char c; struct STUDENT arr[10]; struct STUDENT temp; i=0; do { printf("Vvedite famil %u stud-", i+1); scanf("%s",&arr[i].famil); printf("Vvedite kafedru %u stud-", i+1); scanf("%s",&arr[i].kafedra); printf("Vvedite ocenku %u stud-", i+1); scanf("%d",&arr[i].ocenka); printf("%s,%s,%d\n", arr[i].famil, arr[i].kafedra, arr[i].ocenka); i=i+1; printf("%d\n",i); puts("Vvesti dannue pro studenta(Y/N)"); scanf("%s",&c); }while ( (c != 'n' ) && (c != 'N') ); n=i; // sortirovka for(i=0; i<n-1; i++) for(j=i+1; j<n; j++) { if(!strcmp(arr[i].kafedra, arr[j].kafedra) && i==j-1) { i++; j++; } if(!strcmp(arr[i].kafedra, arr[j].kafedra) && i!=j-1 && j<n) { temp=arr[i+1]; arr[i+1]=arr[j]; arr[j]=temp; i++; } } s=0; count=0; printf("Kafedra: %s\n", arr[0].kafedra); for(i=0; i<n; i++) { printf("%s\n", arr[i].famil); count++; s+=arr[i].ocenka; if(strcmp(arr[i].kafedra, arr[i+1].kafedra) && i!=n-1) { printf("Srednii ball kafedry %s: %f\n", arr[i].kafedra, (float)s/count); printf("Kafedra: %s\n", arr[i+1].kafedra); s=0; count=0; } } printf("Srednii ball kafedry %s: %f", arr[i-1].kafedra, (float)s/count); getch(); return 0; } что то я вообще запутался |
|||
|
||||
Luyan |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 180 Регистрация: 3.12.2008 Репутация: 2 Всего: 7 |
что именно не понятно? в блок схеме есть условие "показать весь список", в программе у вас его нет. И почему элемент "весь список" вы отправляете снова в начало программы? do - while я предложил для того, чтобы данные вводились, по крайней мере, один раз и список не был бы пуст. У вас же нет проверки выводить или не выводить пустой список. |
|||
|
||||
ess399 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 18.11.2009 Репутация: -1 Всего: -2 |
||||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
не то.. имхо, Вы не понимаете смысла блоков и ставите их наугад.. советую заново проштудировать в пройденном на эту тему. как совет для самостоятельной проверки Вашей схемы, попробуйте ее прочитать... только не так как делаете Вы сейчас, читая просто текст, а с участием значений блоков. P.S. мелочь, но в "условиях" (ромбах) желательно ставить вопрос. Добавлено через 3 минуты и 50 секунд ess399, когда Вы все таки начнете оформлять код иотредактируете предыдущие записи ? Добавлено через 7 минут и 27 секунд Поломав глаза, все таки глянул в код.. И где ж у Вас условие указанное в блок схеме как "Сортировать список..." ? ![]() Добавлено через 8 минут и 23 секунды Вобщем вот Вам http://ru.wikipedia.org/wiki/%D0%91%D0%BB%...%B5%D0%BC%D0%B0 информации на этой странице достаточно, чтоб сдеалать Ваше задание. |
|||
|
||||
ess399 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 18.11.2009 Репутация: -1 Всего: -2 |
В общем вышла такая блок схема,мне пока очень тяжело, я недавно только учить программирование начал , незнаю как завтра здавать буду, да и преподователь ничему неучит а требует.
Присоединённый файл ( Кол-во скачиваний: 6 ) ![]() |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
ну если Вы даже тут игнорируете замечания и советы, представляю как Вы поступаете с учителем. почему у вас не от условий идут две стрелки ? где блоки сортировки, например где блоки цикла ? почему "закрыть программу" у Вас в блоке вывода ? где меню в коде ? код Вы написали ? если нет, то что голову морочите, что у Вас блок схема не получается.. как она может получиться если Вы не понимаете что у Вас происходит. если все ж писали Вы, то просто замените каждый логический абазац на блоки из приведенной выше ссылки.. Добавлено через 8 минут и 17 секунд у Вас нет ограничения на кол-во вводимых студентов - хотя массив ограничен. лучше использовать функцию swap..
не вдавался вподробности (в частности из за отвратительной видимости кода), но подобное увелечение переменных влечет выход за допустимые границы массива. да и вся сортировка выглядит сомнительной.. |
|||
|
||||
ess399 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 18.11.2009 Репутация: -1 Всего: -2 |
код конечно не я ,мне еще тяжело в етом, просто похожий нашел в инете.
|
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
ну тогда Вам прежде всего надо разобраться что происходит в коде, а уж потом составлять схему.. Хотя пожалуй Вы полагаете, что все напишут за Вас - тогда Вы запостили не в том разделе, Вам требуется Vingrad - Колледж/Центр помощи. Прямую ссылку давать не буду, ищите, удачи ![]() |
|||
|
||||
Luyan |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 180 Регистрация: 3.12.2008 Репутация: 2 Всего: 7 |
добавьте ещё защиту, на адекватный ввод оценок, а то у вас оценки можно вводить даже отрицательные
|
|||
|
||||
ess399 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 18.11.2009 Репутация: -1 Всего: -2 |
спасибо с кодом ,исправил ошибки, буду дальше думать в составлении схемы.
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |