ребята подскажите где ошибка??? работа с табличными данными. данные таблицы можно вводить любые для проверки. внизу в таблице приблизительные данные для проверки.
а) Абсолютный прирост производства какого вида продукции тяжелой промышленности за период 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; }
|
|