Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.08.2010, 15:19   #1
danik93
Новичок
Джуниор
 
Аватар для danik93
 
Регистрация: 17.08.2010
Сообщений: 1
По умолчанию Проблема со структурой в Си.

Здравствуйте, уважаемые программисты!
Решил я написать программку, которая реализует ввод таблицы, состоящей из двух колонок char и int по типу. Далее программа сортирует колонку int и одновременно, вместе с ней перемещая char. Другими словами сортирует строки. Сортирует "пузырем". А после, вводится искомый int элемент, и если таковой есть в int колонке, то он выводится на экран, если же нет, то увы.

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

Код:
#include <stdio.h>
#include <conio.h>
#define nmax 10; // Максимальное количество строк в таблице.
#define titlemax 30; // Максимальное количество символов в названии вулкана.

struct vul
      {char title[titlemax]; <<< Вот тут то собственно и весь косяк. //Объявление символьного массива заголовков. 
       unsigned short int date; // Объявление целого беззнакового массива дат.
       };

int main (){ 
/*Блок типизации данных*/
    int i, j, number, dexchange;
    vul table[nmax]; 
    char texchange;
    unsigned short int search;
/*Блок проверки ввода с клавиатуры.*/    
    do{
      printf("Input number of volcanos (number < %d) >> ", nmax); 
      scanf("%d", &number);
      }
    while (number <= 0 && number > nmax);
/*Блок заполнения таблицы данными*/   
    printf("Filling of table.");
    for (i = 0; i < number; i++){
          printf("\nInput title of [%d] volcano >> ", i+1);
          scanf("%s", table[nmax].title);
          printf("Input eruption date of [%d] volcano >> ", i+1);
          scanf("%d", table[nmax].date);
          }
/*Блок ввода получившейся таблицы на экран*/
    printf("\nInitial table:\n");
    printf("Title.\tDate.\n")
    for (i = 0; i < number; i++){
           printf ("%30s\t%4d", table[i].title, table[i].date);
           }
/*Сортировка "пузырьком" построчно.*/
    for (i = 0; i < number - 1; i++){
        for (j = number -2; j >= i; j--){
            if (table[j].date > table[j+1].date){
                              dexchange = table[j].date;
                              table[j].date = table[j+1].date;
                              table[j+1].date = dexchange;
                              texchange = table[j].title;
                              table[j].title = table[j+1].title;
                              table[j+1].title = texchange;
                              }
/*Блок вывода финальной таблицы на экран.*/
    printf("\nFinished table:\n");
    printf("Title.\tDate.\n");
    for (i = 0; i < number; i++){
           printf ("%30s\t%4d", table[i].title, table[i].date);
           }
/*Блок ввода ключа и поиска по нему.*/
    printf("Input key of search at table >> ");
    scanf("%4d", search);
    for (i = 0; i < number - 1; i++){
        if (table[i].date == search){
                          printf("Serching compleated.\n At %4d year was erupted volcano %30s.", table[i].date, table[i].title);
                          }
                          else
                          {
                          printf("Sorry, but this date not found in table");
                          }
    getch();
}
Заранее, спасибо.
Злостный виндузятник и гуглофан!

Последний раз редактировалось Stilet; 17.08.2010 в 15:43.
danik93 вне форума Ответить с цитированием
Старый 17.08.2010, 15:33   #2
Лена О.
Новичок
Джуниор
 
Регистрация: 17.08.2010
Сообщений: 3
По умолчанию

Надо было сразу лог компилятора кинуть...
Лена О. вне форума Ответить с цитированием
Старый 17.08.2010, 15:49   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Напиши так:
Код:
const int  nmax= 10; // Максимальное количество строк в таблице.
const int titlemax= 30; // Максимальное количество символов в названии вулкана.
И у тебя там ; кое-где не хватает.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
файл со структурой klykovka Общие вопросы C/C++ 0 29.05.2010 20:44
Трудность со структурой prosto_i Microsoft Office Access 4 11.03.2010 23:11
Задание со структурой maloy-rom Помощь студентам 1 25.05.2009 19:41
C++. Задание со структурой maloy-rom Помощь студентам 2 15.05.2009 14:14
проблема со структурой Petruha-nsk Общие вопросы C/C++ 1 18.04.2009 21:12