Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> работа с таблицами 
:(
    Опции темы
vitaxa3581
Дата 19.1.2013, 21:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 13.12.2012

Репутация: нет
Всего: нет



ребята подскажите где ошибка??? работа с табличными данными. данные таблицы можно вводить любые для проверки. внизу в таблице приблизительные данные для проверки. 


а) Абсолютный прирост производства какого вида продукции тяжелой промышленности за период 1928-1940гг. был максимальным? [Продукция, производство в 1928 г. и 1940 г., прирост]. б) Производство каких видов продукции в 1958 г. превысило X млн. т.? [Продукция, объем в 1958 г.].





Код

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#define N 100
#define LN 20
#define LC 15
#define LG_I 66
#define LG_V 51
#pragma hdrstop
 
//---------------------------------------------------------------------------
 
#pragma argsused
int main(int argc, char* argv[])
{ struct proizvod              /* Структурный тип для начальной таблицы */
           {char name [LN+1];      /* Название */
             float god1928;
             float god1940;
             float god1958;
          };
   /* ======== Начальные данные =========== */
    int n;                         /* количество ископаемых */
    struct proizvod c[N];           /* начальная таблица */
    float y;                    /* ввод млн. тонн ископаемого для сравнения */
    /* ============ Результаты ============= */
    struct
       {char name [LN+1];          /* название */
       float god1928;
       float god1940;
       float max;
       }c_r[N];                    /* таблица-результат */
    int p;                         /* реальное количество ископаемых в таблице*/
/* ========= Промежуточные данные========= */
    float i;                         /* индекс элемента таблицы */
    int prirost;                      /* спад производства */
    float max;                     /* значение текущего максимума*/
    int pr;                        /* признак корректности ввода данных */
    float r; 
                          /* переменная для ввода данных */
    /* отчеркивание при выводе начальной таблицы: */ 
     char sg_icx[LG_I+1]="-----------------------------------";
     /* отчеркивание при выводе таблицы-результата: */ 
     char sg_vix[LG_V+1]=
        "-------------------------------------------------";
/* ========= Проверка ограничений =========== */
/* ------------------ для количества ископаемых в таблице --------------- */
     do
        { printf( "Введите количество продукции (но не более %d)", N);
          scanf( "%d", &n);
          if (n<0 || n>N)
             {pr=1;  printf( "Ошибка!\n");
             }
         else pr=0;
       }
     while(pr);
/* --------------- для элементов таблицы данных ----------------- */
     printf( "Введите данные о продукции\n");
     printf( "%s\n", sg_icx);
     printf("!NN!  Название продукта! 1928! 1940  ! 1958 !\n");
     printf( "%s\n", sg_icx);
     do
        {for(i=0; i<n; i++)
            {printf("%d",   i+1);
              scanf( "%s",  c[i].name);
               scanf( "%f", &r, c[i].god1928=r);
                scanf( "%f", &r, c[i].god1940=r);
              scanf( "%f", &r,  c[i].god1958=r);
              if(c[i].god1928<0 || c[i].god1943<0)
                  {pr=1;
                    printf( "Ошибка при вводе!\n");
                    i--;
                  }
              else pr=0;
            }
        }
while(pr);
      printf( "%s\n", sg_icx);
 
/* ======== Выполняемая часть алгоритма ====== */
 
  /* ======== Max прирост ===*/
       max=0;
       for (i=0; i<n; i++)
       if ((c[i].god1940-c[i].god1928)>max)
           max= (c[i].god1940-c[i].god1928);
/*============  Вывод ============== */
 
      printf( "Максимальный прирост:\n", max);
  /* ======== Table ===*/
  printf( "!NN! Названия продукции! 1928  ! 1940 ! max\n");
  printf( "%s\n", sg_vix); 
  for (i=0; i<n; i++)
      prinf("!%2d!%-20s!%-5d!%-5d!%-5d!%", i+1, c_r[i].name,
            c_r[i].god1928, c_r[i].god1940, c_r[i].max);
        getch();
        return 0;
}

PM MAIL   Вверх
feodorv
Дата 19.1.2013, 22:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2214
Регистрация: 30.7.2011

Репутация: 12
Всего: 45



Цитата(vitaxa3581 @  19.1.2013,  22:23 Найти цитируемый пост)
ребята подскажите где ошибка???

Уточните, пожалуйста, что не так...

Добавлено через 5 минут и 42 секунды
Заметил такое:
Цитата(vitaxa3581 @  19.1.2013,  22:23 Найти цитируемый пост)
               scanf( "%f", &r, c[i].god1928=r);
                scanf( "%f", &r, c[i].god1940=r);
              scanf( "%f", &r,  c[i].god1958=r);

Это как? Совмещение scanf с присваиванием? Не пройдёт, так как сначала выполнится присваивание, а затем scanf. Нужно же наоборот...

Добавлено через 7 минут и 54 секунды
Что мешает написать сразу
Код

               scanf( "%f", &c[i].god1940);

без использования промежуточного r.

Добавлено через 14 минут и 27 секунд
Цитата(vitaxa3581 @  19.1.2013,  22:23 Найти цитируемый пост)
      prinf("!%2d!%-20s!%-5d!%-5d!%-5d!%", i+1, c_r[i].name,
            c_r[i].god1928, c_r[i].god1940, c_r[i].max);

Кто вообще присваивал хоть одно значение хоть одному элементу массива c_r???
Цитата(vitaxa3581 @  19.1.2013,  22:23 Найти цитируемый пост)
                  {pr=1;
                    printf( "Ошибка при вводе!\n");
                    i--;

i-- не спасает, так как ниже идёт
Цитата(vitaxa3581 @  19.1.2013,  22:23 Найти цитируемый пост)
while(pr);

и цикл пойдёт по-новой...


--------------------
Напильник, велосипед, грабли и костыли - основные инструменты программиста...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0414 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.