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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.02.2017, 17:29   #1
drcaligari
Новичок
Джуниор
 
Регистрация: 05.02.2017
Сообщений: 1
Сообщение Найти минимальный оборот в таблице и разницу в индексах

Здравствуйте! Помогите пожалуйста найти ошибку. Данные для ввода в таблице.
57.jpg
Задание:
а) В каком году оборот был минимальным (вывести на экран год, оборот)
б) В каких годах разница в индексах экспорта США и ФРГ была не больше P? (значение P вводится с клавиатуры). Вывести год, индекс экспорта, и разницу.

Вводятся данные более менее нормально. Помогите исправить ошибку. Не выводится минимальный оборот, индекс экспорта между странами.

Извините за косой-кривой код

Код:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#define N 30
#define LN 20
#define LC 15
#define LG 62
    int i;
    int n;
    int pr;
    int r;
    float pl_z;
    struct torgovlya  /*strukturniy tip torgovlya*/
        {float year;
         float oborot;
         float usa;
         float en;
         float frg;
        };
    char sg[LG+1]="---------------------------------------";
    struct torgovlya c[N]; /*tablica*/
    struct torgovlya rab;
    struct tabl
    {
        float year;
        float oborot;
        float usa;
        float en;
        float frg;
        float pl;
        float sum;
 
    }c_r[N];
    int p;
    /*promezutochnie dannie*/
        float pl;
        float sum;
        float ar_min;
        int n_min;
        int pr;
        //float r;
int main()
{
 do
{
    printf("Vvedite kolichestvo godov(ne bolshe chem %d):",N);
    scanf ("%d",&n);
    if (n<=0 || n>N)
        {
            pr=1; printf ("Oshibka!\n");
        }
        else pr=0;
}
while (pr);
 
{
    printf("Vvedite dannie o stranah\n");
    printf("%s\n",sg);
    printf("! Year ! oborot !");
    printf(" USA ! ENGLAND ! FRG !\n");
    printf("%s\n",sg);
 
do
{
    for(i=0; i<n; i++)
        {
            printf("! %d ",i+1); /*identifikaciya stroki*/
            scanf("%d",&r);              c[i].year=r;
            scanf("%d",&r);              c[i].oborot=r;
            scanf("%d",&r);              c[i].usa=r;
            scanf("%d",&r);              c[i].en=r;
            scanf("%d",&r);              c[i].frg=r;
 
    if(c[i].year<0 || c[i].oborot<0 || c[i].usa<0 || c[i].en<0 || c[i].frg<0) /*proverka ogranicheniy*/
 
            {   pr=1;
                printf("Nevernie znacheniya!\n");
                i--;
            }
            else pr=0;
        }
}
while(pr);
 
    printf("%s\n",sg);
 
do
{
    printf("Vvedite indeks eksporta:");
    scanf(" %f",&pl_z);
    if (pl_z<0)
    {
        pr=1;
        printf("Oshibka\n");
    }
    else pr=0;
}
while(pr);
 
/* ++++++++++++++++++++++zadacha b+++++++++++++++++++++++ */
    n_min=-1;
    ar_min=1.0e6;
    p=-1;
    for(i=0; i<n; i++)
    {   /*gustota naseleniya*/
        pl=c[i].frg-c[i].usa;
        sum=c[i].frg+c[i].usa;
        if (pl>pl_z);
        {
            p++;
            c[i].frg=c_r[i].frg;
            c[i].usa=c_r[i].usa;
            //c_r[p].pl=pl;
        }
 /*==============poisk minimalbogo oborota============*/
 
 
   if (c[i].oborot<ar_min)
   {
       ar_min=c[i].oborot;
       n_min=i;
   }
 
}
 /*==============VIVOD============*/
    if (p>-1)
    {
        printf("Raznica v indeksax USA i FRG," "kotoroe ne previshaet%f\n",pl_z);
        printf("%s\n",sg);
        printf("! YEAR ! indeks eksporta ! raznica !\n");
        printf("%s\n",sg);
        for (i=0; i<p; i++)
            printf("!%-17d!%-9d!% 5.2f!\n",c_r[i].year,c_r[i].sum,c_r[i].pl);
        printf("%s\n",sg);
    }
    else
        printf("stran net.\n",pl_z);
 
    printf("minimalniy oborot:%d",c[n_min].oborot);
getch();
}
}
drcaligari вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как найти разницу в двух листах VladimirViewpoint Microsoft Office Excel 5 09.12.2016 23:16
[c++]: В квадратной таблице обменять местами элементы строки и столбца, на пересечении которых находится минимальный из положительных элементов Nyo Помощь студентам 0 23.08.2016 15:44
Найти минимальный simens Общие вопросы C/C++ 4 07.01.2013 19:37
Найти разницу во времени Melissa_Mars Microsoft Office Excel 8 22.08.2012 08:33
найти минимальный елемент bbk_serg Помощь студентам 1 10.01.2009 17:35