Здравствуйте! Помогите пожалуйста найти ошибку. Данные для ввода в таблице.
http://radikal.ru
Задание: а) В каком году оборот был минимальным (вывести на экран год, оборот) б) В каких годах разница в индексах экспорта США и ФРГ была не больше 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(); } }
|
|