Тролль Опубликовано 13 декабря, 2010 Жалоба Поделиться Опубликовано 13 декабря, 2010 chuz91: Лучше сделать проще - чтобы прекратить поиск, просто предложить ввести нуль, экономим лишний ввод. #include <stdio.h>#include <string.h>int main(){struct TRAIN{char NAME[20];unsigned NUM;char TOUT[6];}B[8],T;int i,j,k=0; unsigned Num; char Name[20];for(i=0;i<8;i++) {printf("\nName of the place? "); gets(B[i].NAME); if(strlen(B [i].NAME)==0)break; printf("Train number? "); scanf("%u",&B[i].NUM); printf("Departure time? "); scanf("%s",&B[i].TOUT); gets(Name); k++;};for(i=0;i<k;i++)for(j=0;j<k-i-1;j++)if(B[j].NUM<B[j+1].NUM){T=B[j];B[j]=B[j+1];B[j+1]=T;}while(1){printf("\nTrain number for seach (0 for exit)? "); scanf("%u",&Num); j=0; if(!Num)break;for(i=0;i<k;i++)if(Num==B[i].NUM) {printf("\nName of the place: %s \nTrain number: %u \nDeparture time: %s\n\n", B[i].NAME,B[i].NUM,B[i].TOUT); j=1;}; if(!j)printf("No such train!\n"); getchar();}} 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Ruslan_555 Опубликовано 15 декабря, 2010 Жалоба Поделиться Опубликовано 15 декабря, 2010 Кто-нибудь пожалуйста помогите. Нужна программа на C++. Требуется назначить на каждый вид работ одного из работников, так чтобы общее время, необходимое для завершения всех видов работ, было минимальным. n1 n2 n3 n4 n5 m1 25 16 15 14 13 m2 25 17 18 23 15 m3 30 15 20 19 14 m4 27 20 22 25 12 m5 29 19 17 32 10 Ссылка на комментарий Поделиться на другие сайты Поделиться
Ruslan_555 Опубликовано 15 декабря, 2010 Жалоба Поделиться Опубликовано 15 декабря, 2010 n1, n2,...-Виды работ. m1, m2,...-Работники Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 16 декабря, 2010 Жалоба Поделиться Опубликовано 16 декабря, 2010 (изменено) Ruslan_555: #include<iostream>using namespace std;int n, ss=10000, x[10]={0,1,2,3,4,5,6,7,8,9}, z[10], y[5][5]={{25,16,15,14,13},{25,17,18,23,15},{30,15,20,19,14},{27,20,22,25,12},{29,19,17,32,10}};void Swap(int &a,int &b){int c=a;a=b;b=c;}void Gen(int k){ if(k!=n)for(int i=k+1;i<=n;i++){Swap(x[k+1],x[i]); Gen(k+1); Swap(x[k+1],x[i]);} else {int s=0; for(int i=1;i<=n;i++)s+=y[i-1][x[i]-1]; if(ss>s){ss=s; for(int i=1;i<=n;i++)z[i]=x[i];}}}int main(){n=5; Gen(0); for(int i=1;i<=n;i++)cout<<i<<":"<<z[i]<<endl; cout<<"time="<<ss<<endl; getchar();} Вывод 1:4 означает, что 1-му работнику надо дать 4-ю работу, и т.д. Условие можно истолковать двояко - работники могут работать последовательно или параллельно. Я считал по минимуму суммарного времени выполнения всех работ. В случае, если работники будут работать параллельно, достаточно заменить s+=y[i-1][x-1]; на if(y[i-1][x-1]>s)s=y[i-1][x-1]; Изменено 16 декабря, 2010 пользователем Тролль 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Ruslan_555 Опубликовано 16 декабря, 2010 Жалоба Поделиться Опубликовано 16 декабря, 2010 Большое спасибо Ссылка на комментарий Поделиться на другие сайты Поделиться
chuz91 Опубликовано 17 декабря, 2010 Жалоба Поделиться Опубликовано 17 декабря, 2010 Тролль Здравствуйте вы ранее мне помогали описать структуру с именем TRAIN #include <stdio.h>#include <string.h> int main(){ struct TRAIN{char NAME[20];unsigned NUM;char TOUT[6];}B[8],T; int i,j,k=0; unsigned Num; char Name[20]; for(i=0;i<8;i++) {printf("\nName of the place? "); gets(B.NAME); if(strlen(B .NAME)==0)break; printf("Train number? "); scanf("%u",&B.NUM); printf("Departure time? "); scanf("%s",&B.TOUT); gets(Name); k++;}; for(i=0;i<k;i++)for(j=0;j<k-i-1;j++)if(B[j].NUM<B[j+1].NUM){T=B[j];B[j]=B[j+1];B[j+1]=T;} while(1){printf("\nTrain number for seach (0 for exit)? "); scanf("%u",&Num); j=0; if(!Num)break; for(i=0;i<k;i++)if(Num==B.NUM) {printf("\nName of the place: %s \nTrain number: %u \nDeparture time: %s\n\n", B.NAME,B.NUM,B.TOUT); j=1;}; if(!j)printf("No such train!\n"); getchar();} } помогите пожалуйста закончить её, нужно чтобы после ввода 8го элемента типа TRAIN, все 8 элементов выводились в столбик упорядоченые по номерам поездов, по типу: Moskva - #1 - 15:00 S-Pb - #24 - 9:00 Omsk - #50 - 17:00 и так далее. Спасибо! Ссылка на комментарий Поделиться на другие сайты Поделиться
Riki_Tiki_Tavi Опубликовано 17 декабря, 2010 Жалоба Поделиться Опубликовано 17 декабря, 2010 Помогите пожалуйста решить на языке Си с использованием функции Дана послідовність n натуральних чисел. Для кожного числа обчислити кількість його цифр та суму цих цифр. Вивести на екран кожне число, кількість його цифр ти їх суму. Використати процедуру для обчислення кількості цифр числа та їх суми. Данная последовательность n натуральных чисел. Для каждого числа вычислить количество его цифр и сумму этих цифр. Вывести на экран каждое число, количество его цифр ты их сумму. Использовать процедуру для вычисления количества цифр числа и их суммы Заранее благодарен! Ссылка на комментарий Поделиться на другие сайты Поделиться
pr9ni4ek Опубликовано 17 декабря, 2010 Жалоба Поделиться Опубликовано 17 декабря, 2010 помогите пожалуйста написать программу в С!!!!!! Описать структуру с именем NOTE,содержащую следующие поля: 1.фамилия,имя; 2.номер телефона; 3.дата рождения(массив из 3 чисел) Написать программу,выполняющую следующие действия: -ввод с клавиатуры данных в массив, состоящий из восьми элементов типа NOTE;записи должны быть упорядочены по дате рождения -вывод на экран заранее огромное спасибо! Ссылка на комментарий Поделиться на другие сайты Поделиться
sinbad0000 Опубликовано 17 декабря, 2010 Жалоба Поделиться Опубликовано 17 декабря, 2010 ребят помогите пожалуйста Описать структуру с именем ORDER содержащую следующие поля: - расчётный счёт плательщика; - расчётный счёт получателя; - перечисляемая сумма в рублях; Написать программу, выполняющую следующие действия: - ввод с клавиатуры данных в массив, состоящий из восьми элементов типа ORDER; записи должны быть размещены в алфавитном порядке по расчётным счетам плательщиков; - вывод на экран информации о сумме, снятой с расчётного счёта плательщика введённого с клавиатуры; - если такого расчётного счёта нет, выдать на дисплей соответствующее сообщение. Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 17 декабря, 2010 Жалоба Поделиться Опубликовано 17 декабря, 2010 (изменено) chuz91: Перед строкой, начинающейся с while(1), вставь строку printf("\nTrains:\n"); for(i=0;i<k;i++)printf("%-19s - #%3u - %7s\n",B[i].NAME,B[i].NUM,B[i].TOUT); Riki_Tiki_Tavi: #include<stdio.h>void f(unsigned a,unsigned *m,unsigned *s){*m=*s=0; do *s+=a%10,*m+=1; while(a/=10);}int main(){unsigned a[100],m,s,i,n; printf("n ? "); scanf("%u",&n); for(i=1;i<=n;i++)scanf("%u",&a[i]); printf("\n"); for(i=1;i<=n;i++){f(a[i],&m,&s); printf("%8u%8u%8u\n\n",a[i],m,s);} getchar(); getchar();} sinbad0000: Возьми у chuz91, у него почти такое же задание, и слегка переделай. pr9ni4ek: Этот пост. У вас что, эту задачу препод со времен кроманьонцев всем выдает? Изменено 17 декабря, 2010 пользователем Тролль 2 Ссылка на комментарий Поделиться на другие сайты Поделиться
chuz91 Опубликовано 17 декабря, 2010 Жалоба Поделиться Опубликовано 17 декабря, 2010 chuz91:Перед строкой, начинающейся с while(1), вставь строку printf("\nTrains:\n"); for(i=0;i<k;i++)printf("%-19s - #%3u - %7s\n",B[i].NAME,B[i].NUM,B[i].TOUT); Спасибо большое. хотелось задать ещё 1 последний вопрос насчёт программы AutoFlowchart. мне для этой структуры(TRAIN) нужно сделать блок схемы разобраться толком не удалось, преподователю показал что получилось блок схемы получились все такого образца для каждого for он сказал что блок схемы не полные, объясните пожалуйста как правильно пользоваться этой программой (AutoFlowchart)или выложите блок схемы для моей структуры :rolleyes: Ссылка на комментарий Поделиться на другие сайты Поделиться
chuz91 Опубликовано 17 декабря, 2010 Жалоба Поделиться Опубликовано 17 декабря, 2010 #include <stdio.h>#include <string.h>int main(){struct TRAIN{char NAME[20];unsigned NUM;char TOUT[6];}B[8],T;int i,j,k=0; unsigned Num; char Name[20];for(i=0;i<8;i++) {printf("\nNazvanie punkta naznacheniya? "); gets(B[i].NAME); if(strlen(B [i].NAME)==0)break; printf("Nomer poezda? "); scanf("%u",&B[i].NUM); printf("Vremya otpravleniya? "); scanf("%s",&B[i].TOUT); gets(Name); k++;};for(i=0;i<k;i++)for(j=0;j<k-i-1;j++)if(B[j].NUM<B[j+1].NUM){T=B[j];B[j]=B[j+1];B[j+1]=T;}printf("\nTrains:\n"); for(i=0;i<k;i++)printf("%-19s - #%3u - %7s\n",B[i].NAME,B[i].NUM,B[i].TOUT);while(1){printf("\nNomer poezda dlya poiska(0 dlya vihoda)? "); scanf("%u",&Num); j=0; if(!Num)break;for(i=0;i<k;i++)if(Num==B[i].NUM) {printf("\nPunkt naznacheniya: %s \nNomer poezda: %u \nVremya otpravleniya: %s\n\n", B[i].NAME,B[i].NUM,B[i].TOUT); j=1;}; if(!j)printf("Net takogo poezda!\n"); getchar();}} вся программа Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 17 декабря, 2010 Жалоба Поделиться Опубликовано 17 декабря, 2010 chuz91: Как ею правильно пользоваться, сказать не могу, у меня проблем не обнаружилось, при запуске получилось вот что. Вообще-то у нее помощь с картинками... Полагаю, твой препод хочет видеть циклы развернутыми, как тут. Детальные блок-схемы никому не нужны уже полста лет, запись вроде for(i=1;i<=n;i++) выглядит куда понятней, чем переплетение линий, ромбов и прямоугольников на полстраницы. Идея C была прямо противоположной - чем компактнее записано, тем лучше. А в языках типа C++ одна инструкция высокого уровня эквивалентна книжке, заполненной блок-схемами. 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Lolka Опубликовано 18 декабря, 2010 Жалоба Поделиться Опубликовано 18 декабря, 2010 Ребят очень прошу помочь, решал пол ночи, но выдаёт 3 ошибки, а сдавать надо завтра.... Если кому не сложно помогите... а кому уж совсем не сложно то можете нарисовать и блок схемы... Убился я с этой информатикой.. Заранее очень благодарен. Вот задание Составить программу, которая содержит текущую информацию о книгах в библиотеке. Сведения о книгах содержат: -номер УДК; -фамилию и инициалы автора; -название; -год издания; -количество экземпляров данной книги в библиотеке. Программа должна обеспечивать: -начальное формирование данных обо всех книгах в библиотеке в виде двоичного дерева; -добавление данных о книгах, вновь поступающих в библиотеку; -удаление данных о списываемых книгах; -по запросу выдаются сведения о наличии книг в библиотеке, упорядоченные по годам издания. Решение... #include <stdio.h>#include <stdlib.h>#include <conio.h>struct LIBRARY{ char nomer[30]; char FIO[30]; char nazvanie[40]; int Year; int kolvo;};struct STR{ LIBRARY *Library; STR *next;};STR * create(LIBRARY * Library) //начальное формирование списка{ STR *root=new STR; root->Library=Library; root->next=NULL; return root;}void add(LIBRARY *Library, STR* root) //добавление нового элемента списка{ while(root->next) root=root->next; root->next=new STR; root->next->Library=Library; root->next->next=NULL;}void printLIBRARY(LIBRARY *Library) //вывод на экран { cout<<"Nomer => "<<Library->nomer<<endl; cout<<"FIO => "<<Library->FIO<<endl; cout<<"Nazvanie => "<<Library->nazvanie<<endl; cout<<"Year => "<<Library->Year<<endl; cout<<"Kolvo => "<<Library->kolvo<<endl; cout<<endl;}LIBRARY * makeLIBRARY() //добавление книги{ cout<<"Enter book data:"<<endl; LIBRARY *Library=new LIBRARY; fflush(stdin); cout<<"Enter book nomer: => "; cin.getline(Library->nomer,30); cout<<"Enter Author's FIO: => "; cin.getline(Library->FIO,30); cout<<"Enter book name: => "; cin.getline(Library->nazvanie,40); cout<<"Enter made year: => "; cin>>Library->Year; cout<<"Enter count of books: => "; cin>>Library->kolvo; return Library;}int choice(){ int answer; getch(); system("cls"); cout<<"Main menu"<<endl; cout<<"1. Add new books to the list"<<endl; cout<<"2. Print LIBRARY at list"<<endl; cout<<"3. Search and delete"<<endl; cout<<"4. Clear all entries"<<endl; cout<<"5. Exit"<<endl; cout<<"Enter your choice: "; cin>>answer; fflush(stdin); if(answer>=1 && answer<=5) return answer; else return 0;}int main(){ STR *root=NULL; int ch; while(1) { ch=choice(); if(ch==1) { cout<<endl; if(root==NULL) root=create(makeLIBRARY()); else add(makeLIBRARY(),root); } else if(ch==2) { cout<<endl; int i=0; int N=0; STR *proot=root; while (root) { N++; root=root->next; } LIBRARY *buf; LIBRARY **pLibrary=new LIBRARY*[N]; root=proot; while (root) { pLibrary[i]=root->Library; root=root->next; i++; } root=proot; for (i=0;i<N;i++) printLIBRARY(pLibrary[i]); } else if(ch==3) { char qwe[30]; char qw[30], q[1]; cout<<"Enter nomer of book => "<<endl; cin.getline(qwe,30); while (root) { if (!strcmp(qwe,root->Library->nomer)) { { printLIBRARY(root->Library);cout<<"Do you want clear this entries? (y/n) "<<endl;// Удаление записи cin.getline(q,1); if (!strcmp(q,"y")) { root->Library=NULL; } root=root->next; } } else if (strcmp(qwe,root->Library->nomer)) root=root->next; } cout<<endl; } else if(ch==5) { break; cout<<endl; } } return 0;} Ссылка на комментарий Поделиться на другие сайты Поделиться
Riki_Tiki_Tavi Опубликовано 18 декабря, 2010 Жалоба Поделиться Опубликовано 18 декабря, 2010 Помогите решить на языке Си с использованием одномерного массива Дано одномерный массив B, состоящий из 2n элементов. Расположить элементы массива в таком порядке: B[n +1], B[n +2], ..., B[2n], B[n], B[n-1], ..., B[1]. P.S извините пожалуйста что прошу так часто, просто нету выхода, я не успеваю, а на решенных вами примерах я учусь тоже.Заранее благодарен! Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 18 декабря, 2010 Жалоба Поделиться Опубликовано 18 декабря, 2010 (изменено) Riki_Tiki_Tavi: #include<stdio.h>int main(){int i,m,k; float b[100],p; printf("number of elements (even)? "); scanf("%d",&m); for(i=0;i<m;i++){printf("b[%d]? ",i+1); scanf("%f",&b[i]);} printf("\n"); k=m/2;for(i=0;i<m;i++)printf("%8.2f",b[i]); printf("\n\n");for(i=0;i<m/2;i++){p=b[i]; b[i]=b[k+i]; b[k+i]=p;} for(i=0;i<m/4;i++){p=b[i+k]; b[i+k]=b[m-i-1]; b[m-i-1]=p;}for(i=0;i<m;i++)printf("%8.2f",b[i]); getchar(); getchar();} Изменено 18 декабря, 2010 пользователем Тролль 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 18 декабря, 2010 Жалоба Поделиться Опубликовано 18 декабря, 2010 (изменено) Lolka: Надо добавить #include <iostream.h> (в некоторых компиляторах надо #include <iostream> и using namespace std; ) Тогда должно скомпилироваться. Изменено 18 декабря, 2010 пользователем Тролль Ссылка на комментарий Поделиться на другие сайты Поделиться
Riki_Tiki_Tavi Опубликовано 18 декабря, 2010 Жалоба Поделиться Опубликовано 18 декабря, 2010 Помогите пожалуйста на Си решить задачу с использованием многомерного массива Дан массив A [m, n] действительных чисел и число а. Вывести этот массив на экран, подсчитать количество элементов, равных а и вывести их индексы. Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 18 декабря, 2010 Жалоба Поделиться Опубликовано 18 декабря, 2010 Riki_Tiki_Tavi: По-моему, ввод-вывод массива ты и сам без труда можешь сделать... Ссылка на комментарий Поделиться на другие сайты Поделиться
Riki_Tiki_Tavi Опубликовано 18 декабря, 2010 Жалоба Поделиться Опубликовано 18 декабря, 2010 Riki_Tiki_Tavi: По-моему, ввод-вывод массива ты и сам без труда можешь сделать... Хах как то увлекся:)Извиняюсь:)решил без проблем:) Покажите как решить эту задачу пожалуйста:)Уже последнюю пока:) С использованием рядов:) Дан массив слов, и в каждом слове от 1 до 8 строчных латинских букв. Вывести те слова, в которых буквы упорядочены по алфавиту. Дано масив слів, і в кожному слові від 1 до 8 малих латинських літер. Вивести ті слова, у яких букви впорядковані за алфавітом. Ссылка на комментарий Поделиться на другие сайты Поделиться
yuliya#1 Опубликовано 18 декабря, 2010 Жалоба Поделиться Опубликовано 18 декабря, 2010 нужна помощь срочно. заранее спасибо огромное, людям, которые помогают!!!! 1) Вычислить значения функций f1(x) и f2(x) для значений аргументов. Функцию f2(x) вычислить для ряда точностей e=0.01, e=0.001, e=0.0001 . Для указанных точностей определить количество N элементов ряда, суммируемых для достижения заданной точности. рис. к этой задаче. 2) Для заданной целочисленной матрицы X[n x n] найти максимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы. Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 19 декабря, 2010 Жалоба Поделиться Опубликовано 19 декабря, 2010 Riki_Tiki_Tavi: #include<stdio.h>int main(){int i,j,n,b; char s[100][9];for(n=0;n<100;n++){gets(s[n]);if(s[n][0]==0)break;}for(i=0;i<n;i++){b=1; for(j=1;s[i][j]!=0;j++)if(s[i][j-1]>s[i][j])b=0; if(b)printf("%s\n",s[i]);} getchar();} Ввод слов заканчивается вводом пустого слова, то есть просто нажатием Enter. yuliya#1: И на каком языке это нужно? Ссылка на комментарий Поделиться на другие сайты Поделиться
Lolka Опубликовано 19 декабря, 2010 Жалоба Поделиться Опубликовано 19 декабря, 2010 не помогает, мне же не в вижуал си надо, а в просто Си ++ компиляторе))) короче капут)!( помогите кто нибудь ))) Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 19 декабря, 2010 Жалоба Поделиться Опубликовано 19 декабря, 2010 Lolka: мне же не в вижуал си надо, а в просто Си ++ компиляторе))) "просто Си++ компилятора" не бывает. Всегда как-нибудь да назван. Добавил, как было сказано, к приведенной программе #include <iostream.h>, скомпилировал в Dev-C++, никаких ошибок, у компилятора замечаний нет, работает. Хотя тестирование на правильность выводимых данных не проводил. Ссылка на комментарий Поделиться на другие сайты Поделиться
Lolka Опубликовано 19 декабря, 2010 Жалоба Поделиться Опубликовано 19 декабря, 2010 мне через Borland C++ надо ... вот как.. а он ошибки зараза выдаёт!((( Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти