Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
stydent1991
0 / 0 / 0
Регистрация: 13.06.2010
Сообщений: 156
#1

Структура: Найти все страны, у которых величина экспорта за 20 лет превышает величину импорта. - C++

26.04.2012, 17:49. Просмотров 867. Ответов 10
Метки нет (Все метки)

Дан файл, содержащий информацию о товарообмене пяти стран в течение 20 лет. Под товарообменом понимается данные об экспорте и импорте из i ой в страны в j ую. Найти все страны у которых величина экспорта за 20 лет превышает величину импорта.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <stdio.h>
#include <stdlib.h>
#include <conio.h> 
int main()
{
char fn[256],country[16];
int year,i,j;
float ballance[5]={0.0,0.0,0.0,0.0,0.0},n;
FILE *f; 
clrscr();
printf("Input file name: ");
gets(fn); 
f=fopen(fn,"r"); 
if(f==NULL) 
{
printf("File not found."); 
getch(); 
return 1; 
}
while(!feof(f)) 
{
if(fscanf(f,"%d %d %d %f",&i,&j,&year,&n))
{
ballance[i-1]+=n;
ballance[j-1]-=n;
}
}
fclose(f); 
printf("Экспорт превышает импорт в странах:\n");
for(i=0;i<5;i++)
{
if(ballance[i]>0) printf("%d (%f)\n",i+1,ballance[i]);
}
getch();
return 0;
}
Добавлено через 19 часов 1 минуту
может кто-нибудь помочь переделать?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.04.2012, 17:49
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Структура: Найти все страны, у которых величина экспорта за 20 лет превышает величину импорта. (C++):

Структура Trains, вывести все сведения о поездах, время пребывания в пути которых превышает 7 часов 10 мин - C++
Есть задание:&quot;Вывести все сведения о поездах,время пребывания в пути которых привышает 7ч 10.мин используя структуру Я начал писать...

Найти среднюю стоимость автомобилей, "возраст" которых превышает 6 лет - C++
Известны стоимость и &quot;возраст&quot; каждой из 20-ти моделей легковых автомобилей. Найти среднюю стоимость автомобилей, &quot;возраст&quot; которых...

Найти номера тех столбцов матрицы, сумма элементов которых превышает заданную величину, и число таких столбцов - C++
Для матрицы из 3 строк и 7 столбцов отпечатать номератех слобцов, сумма элементов которых превышает заданную величину,и число таких...

Вычислить сумму квадратов чисел массива, абсолютная величина которых превышает заданное значение - C++
Дано задание: Массив содержит 7 действительных чисел. Вычислить сумму квадратов тех чисел, абсолютная величина которых превышает значение...

Найти страны, в которые экспортируется указанный пользователем товар и общий объём его экспорта. - C++
Дан файл, содержащий сведения об экспортируемых товарах: наименование товара, страна и объем поставляемой партии. Найти страны, в которые...

Найти все парные трехзначные числа, сумма которых не превышает 10 - C++
Найти все парные трехзначные числа, сумма которых не превышает 10. Зарание спасибо :)

10
MrGluck
Модератор
Эксперт CЭксперт С++
7492 / 4607 / 693
Регистрация: 29.11.2010
Сообщений: 12,603
26.04.2012, 18:28 #2
Мб, ты все-таки расскажешь, в каком формате содержится информация в текстовом файле?
0
zitxbit
88 / 740 / 75
Регистрация: 11.04.2012
Сообщений: 971
26.04.2012, 22:06 #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#include <stdio.h>
#include <conio.h>
#include <string.h>
 
typedef struct Country
{
    int  nCountyID;
    char pszCountry[256];
} COUNTRY;
 
typedef struct Export
{
    int nCountryImpID;
    int nCountryExpID;
    int nImportAmount;
    int nExportAmount;
} EXPORT;
 
int main(void)
{
    FILE* fp = NULL; char* filename = "d:\\input.txt";
    if ((fp = fopen(filename,"r")) == NULL)
        printf("Unable to open file %s\n",filename);
 
    static char line[256] = "\0";
    static char pszCountry[256] = "\0";
    int nCountryID = -1; COUNTRY* lpCountry = NULL;
    for (int i = 0; fgets(line, 256, fp) != NULL && 
        line[0] != '*'; i++)
    {
        COUNTRY* lpCntryTemp = new COUNTRY[i+1];
        if (lpCountry != NULL)
            memcpy((void*)lpCntryTemp, (void*)lpCountry, 
                     sizeof(COUNTRY) * (i + 1));
        sscanf(line, "%d %s", &nCountryID, pszCountry);
        lpCntryTemp[i].nCountyID = nCountryID;
        strcpy(lpCntryTemp[i].pszCountry, pszCountry);
        lpCountry = lpCntryTemp;
    }
    
    EXPORT* lpExport = NULL;
    int nCountryImpID = -1, nImpAmount = 0;
    int nCountryExpID = -1, nExpAmount = 0;
    for (int k = 0; fgets(line, 256, fp) != NULL; k++)
    {
        EXPORT* lpExportTemp = new EXPORT[k+1];
        if (lpExport != NULL)
            memcpy((void*)lpExportTemp, (void*)lpExport, 
                     sizeof(EXPORT) * (k + 1));
        sscanf(line, "%d %d %d %d", &nCountryImpID, 
            &nCountryExpID, &nImpAmount, &nExpAmount);
        lpExportTemp[k].nCountryImpID = nCountryImpID;
        lpExportTemp[k].nCountryExpID = nCountryExpID;
        lpExportTemp[k].nImportAmount = nImpAmount;
        lpExportTemp[k].nExportAmount = nExpAmount;
        lpExport = lpExportTemp;
    }
 
    for (int n = 0; (lpExport[n].nCountryImpID > 0) && 
        (lpExport[n].nCountryExpID > 0); n++)
        if (lpExport[n].nExportAmount > lpExport[n].nImportAmount)
        {
            for (int z = 0; lpCountry[z].nCountyID > 0; z++)
                if (lpCountry[z].nCountyID == lpExport[n].nCountryExpID)
                    printf("%s\n",lpCountry[z].pszCountry);
        }
 
    fclose(fp);
 
    _getch();
 
    return 0;
}
input.txt:
1 England
2 France
3 Japan
4 USA
5 Switzerland
*
1 2 250 310
3 4 100 95
4 2 390 185
3 5 68 94
5 1 192 75
4 3 78 187
2 3 143 128
2
MrGluck
Модератор
Эксперт CЭксперт С++
7492 / 4607 / 693
Регистрация: 29.11.2010
Сообщений: 12,603
27.04.2012, 00:59 #4
Цитата Сообщение от zitxbit Посмотреть сообщение
input.txt:
1 England
2 France
3 Japan
4 USA
5 Switzerland
*
1 2 250 310
3 4 100 95
4 2 390 185
3 5 68 94
5 1 192 75
4 3 78 187
2 3 143 128
Поясните, до какого момента идет считывание информации о принадлежности страны к какому-либо числу, что значат эти 4 цифры? Кто, кому, куда и что?
0
zitxbit
88 / 740 / 75
Регистрация: 11.04.2012
Сообщений: 971
27.04.2012, 04:18 #5
3 4 100 95 - Страна импортер (3), Страна экспортер (4), Объем импорта (100), Объем экспорта (95)
1
stydent1991
0 / 0 / 0
Регистрация: 13.06.2010
Сообщений: 156
27.04.2012, 14:32  [ТС] #6
здоровооо. спасибо большое!!!!

Добавлено через 3 минуты
это ведь как раз под турбо си ++?)
0
stydent1991
0 / 0 / 0
Регистрация: 13.06.2010
Сообщений: 156
01.05.2012, 18:00  [ТС] #7
а можете текстовый файл кинуть?. у меня што то не получается...
0
zitxbit
88 / 740 / 75
Регистрация: 11.04.2012
Сообщений: 971
01.05.2012, 18:58 #8
Вот файл input.txt
1
Вложения
Тип файла: txt input.txt (141 байт, 11 просмотров)
stydent1991
0 / 0 / 0
Регистрация: 13.06.2010
Сообщений: 156
01.05.2012, 19:41  [ТС] #9
это не под борланд?
у меня турбо си++ 5.0 не идет. можете под нее исправить?
0
zitxbit
88 / 740 / 75
Регистрация: 11.04.2012
Сообщений: 971
01.05.2012, 20:37 #10
используйте предыдущий исходник без STL
1
stydent1991
0 / 0 / 0
Регистрация: 13.06.2010
Сообщений: 156
01.05.2012, 20:38  [ТС] #11
НЕ понял..что это?
0
01.05.2012, 20:38
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.05.2012, 20:38
Привет! Вот еще темы с ответами:

Выведите список школьников, рост которых превышает задаваемую величину, и определите их средние показатели роста и веса - C++
Файл содержит сведения о школьниках: фамилия, имя, рост и вес. Выведите список школьников, рост которых превышает задаваемую величину, и...

Найти все натуральные числа из промежутка от k до l, у которых количество делителей превышает заданное число m - C++
Люди добрые и мудрые. Как сделать сие чудо. Найти все натуральные числа из промежутка от k до l, у которых количество делителей превышает...

Найти все натуральные числа из диапазона, у которых количество делителей превышает заданное число - C++
задача: найти все натуральные числа из промежутка от а до b, у которых количество делителей превышает заданное число n. #include...

Найти сумму элементов массива, удалить из него все элементы, модуль которых не превышает 1 - C++
Помогите, пожалуйста 1. Найти сумму элементов массива с нечетными номерами. 2. Найти сумму элементов массива, расположенных между...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru