Форум программистов, компьютерный форум CyberForum.ru

не вижу ошибки - C++

Восстановить пароль Регистрация
 
_AgreSsoR_666
0 / 0 / 0
Регистрация: 28.09.2010
Сообщений: 16
04.04.2011, 15:19     не вижу ошибки #1
программа компилируется,но выводит какие то иероглифы,помогите найти ошибки
#include<assert.h>
#include<iostream>
#include<string>
static const int N = 3; //количество "карточек" в массиве
static const int char_size = 256;

class note{
public:
char family_name[char_size];
int phone;
// и остальное.
private:
//nothing.
};

void add(note* const a, const int i); //заполняет i-тую "карточку"
void search(const char* const person,
const note* const a); //Поиск карточки по фамилии
void gsort(note* const a); //очевидно сортировка.

int main(void){
note a[N];
//заполняем:
for(int i = 0; i<N; i++) add(a,i);

//сортируем:
std::cout<<"==================================="<<std::endl;
for(int i = 0;i<N; i++)
std::cout<<a[i].family_name<<'\t'<<a[i].phone<<std::endl;

gsort(a);

std::cout<<"==================================="<<std::endl;
for(int i = 0;i<N; i++)
std::cout<<a[i].family_name<<'\t'<<a[i].phone<<std::endl;


//Ищем человека:
std::cout<<"кого ищем? : ";
char person[char_size];
std::cin>>person;

search(person,a);

return 0;
}

void add(note* const a, const int i){
assert((a!=NULL)&&(i>=0)&&(i<N));

//тут красивые запросы с проверкой вводимых данных.
//у нас - фамилия и телефон через пробел.
std::cout<<"\nфамилию и телефон через пробел введите пожалуйста."<<std::endl;
std::cin>>a[i].family_name>>a[i].phone;
}

void search(const char* const person, const note* const a){
assert( (a!=NULL)&&(person!=NULL)&&(N>0) );
//ниже должно быть красивое оформление и вывод всех данных
// по найденой карточке.
for(int i = 0;i<N; i++){
if(!strcmp(a[i].family_name, person)){
std::cout<<"найдено :";
std::cout<<a[i].family_name<<'\t'<<a[i].phone<<std::endl;
return;
}
}
std::cout<<"не найдено.";
}


void gsort(note* const a){
assert((a!=NULL)&&(N>0));
//гномья, разнообразия для:
int iterator = 1;
while(iterator<N){
if (a[iterator-1].phone > a[iterator].phone)
{
iterator++;}
else{
//обмен значениями (лучше написать функцию swap(a,b))
char str[char_size];
std::strcpy(str,a[iterator].family_name);
std::strcpy(a[iterator].family_name,
a[iterator-1].family_name);
std::strcpy(a[iterator-1].family_name,str);

int tmp = a[iterator].phone;
a[iterator].phone = a[iterator-1].phone;
a[iterator-1].phone = tmp;
//продолжаем:

iterator--;
if (iterator == 0) iterator = 1;
}
}
//отсортировано по убыванию.
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.04.2011, 15:19     не вижу ошибки
Посмотрите здесь:

Не вижу ошибку C++
Линейный алгоритм, а ошибку не вижу C++
Помогите найти ошибку в коде, я его уже наизусть знаю...но ошибки не вижу C++
Не вижу ошибку C++
C++ То ли getchar мозги парит, то ли я что-то не вижу
C++ Не вижу сообщения из цикла фор
C++ не вижу ошибки
C++ Не вижу последовательности

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 23:27. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru