Lotos Posted March 17, 2008 Report Share Posted March 17, 2008 Здравствуйте. Помогите, пожалуйста, написать программку на си++ Недавно "Тролль" уже здесь писал очень похожую прогу, а мне нужно кое-что изменить. У самого не выходит. Условие: 1. Описать структуру с именем NOTE, содержащую следующие поля: • Фамилия, имя; • Номер телефона; • День рождения (массив из трех чисел). 2. Написать программу, выполняющую следующие действия: • ввод с клавиатуры данных в массив, состоящий из восьми элементов типа NOTE; записи должны быть упорядочены по датам дней рождений; • Вывод на экран информации о человеке, номер которого введен с клавиатуры; • Если такого нет, вывести соответствующее сообщение. Заранее Большое спасибо! Link to comment Share on other sites More sharing options...
Тролль Posted March 17, 2008 Report Share Posted March 17, 2008 Lotos: Два замечания: 1. Не говоря уже о том, что уже была очень похожая тема от aliner88, о которой ты упоминаешь, специально для таких вопросов есть тема в "Важно": "Заказы "Сделайте все за меня"". Ни к чему множить темы. 2. Ту программу, по просьбе aliner88, надо было написать на C. C и C++ - два разных языка. Программа, написанная на C, чаще всего будет нормально компилироваться и в C++, но в C++ можно использовать гораздо более удобные и мощные команды, чем в C. Но раз программа уже была написана, я ее подкорректирую и оставлю C, она будет работать и в C++. #include <stdio.h> #include <string.h> main() { struct NOTE{char NAME[20],TELE[15];unsigned BDAY[3];}BNOTE[8],T; int i,j,k=0; char Number[15]; for(i=0;i<8;i++) { printf("\nName? "); gets(BNOTE.NAME); if(strlen(BNOTE.NAME)==0)break; printf("Phone number? "); gets(BNOTE.TELE); printf("Birthday (YYYY MM DD)? "); for(j=0;j<3;j++)scanf("%u",&BNOTE.BDAY[j]); gets(Number); k++; }; for(i=0;i<k;i++)for(j=0;j<k-i-1;j++) if((long)1000*BNOTE[j].BDAY[0]+50*BNOTE[j].BDAY[1]+BNOTE[j].BDAY[2]> (long)1000*BNOTE[j+1].BDAY[0]+50*BNOTE[j+1].BDAY[1]+BNOTE[j+1].BDAY[2]) {T=BNOTE[j];BNOTE[j]=BNOTE[j+1];BNOTE[j+1]=T;} printf("\nNumber for the seach? "); gets(Number); j=0; for(i=0;i<k;i++)if(!strcmp(Number,BNOTE.TELE)) { printf("\nName: %s \nPhone number: %s \nBirthday: %u %u %u\n\n", BNOTE.NAME, BNOTE.TELE, BNOTE.BDAY[0],BNOTE.BDAY[1],BNOTE.BDAY[2]);j=1; }; if(!j)printf("No such person!\n\n"); getch(); } Link to comment Share on other sites More sharing options...
Lotos Posted March 17, 2008 Author Report Share Posted March 17, 2008 Спасибо, замечания приму к сведенью. Жаль, конечно, что на С++ переписать не удалось... Link to comment Share on other sites More sharing options...
Recommended Posts