Форум программистов, компьютерный форум CyberForum.ru

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

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

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

26.04.2012, 17:49. Просмотров 850. Ответов 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 минуту
может кто-нибудь помочь переделать?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.04.2012, 17:49     Структура: Найти все страны, у которых величина экспорта за 20 лет превышает величину импорта.
Посмотрите здесь:
C++ Структура Trains, вывести все сведения о поездах, время пребывания в пути которых превышает 7 часов 10 мин
Найти среднюю стоимость автомобилей, "возраст" которых превышает 6 лет C++
C++ Найти номера тех столбцов матрицы, сумма элементов которых превышает заданную величину, и число таких столбцов
Вычислить сумму квадратов чисел массива, абсолютная величина которых превышает заданное значение C++
C++ Найти страны, в которые экспортируется указанный пользователем товар и общий объём его экспорта.
Найти все парные трехзначные числа, сумма которых не превышает 10 C++
C++ Выведите список школьников, рост которых превышает задаваемую величину, и определите их средние показатели роста и веса
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGluck
Модератор
Эксперт CЭксперт С++
7161 / 4327 / 630
Регистрация: 29.11.2010
Сообщений: 11,750
26.04.2012, 18:28     Структура: Найти все страны, у которых величина экспорта за 20 лет превышает величину импорта. #2
Мб, ты все-таки расскажешь, в каком формате содержится информация в текстовом файле?
zitxbit
Master C/C++
88 / 740 / 75
Регистрация: 11.04.2012
Сообщений: 971
26.04.2012, 22:06     Структура: Найти все страны, у которых величина экспорта за 20 лет превышает величину импорта. #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
MrGluck
Модератор
Эксперт CЭксперт С++
7161 / 4327 / 630
Регистрация: 29.11.2010
Сообщений: 11,750
27.04.2012, 00:59     Структура: Найти все страны, у которых величина экспорта за 20 лет превышает величину импорта. #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 цифры? Кто, кому, куда и что?
zitxbit
Master C/C++
88 / 740 / 75
Регистрация: 11.04.2012
Сообщений: 971
27.04.2012, 04:18     Структура: Найти все страны, у которых величина экспорта за 20 лет превышает величину импорта. #5
3 4 100 95 - Страна импортер (3), Страна экспортер (4), Объем импорта (100), Объем экспорта (95)
stydent1991
0 / 0 / 0
Регистрация: 13.06.2010
Сообщений: 156
27.04.2012, 14:32  [ТС]     Структура: Найти все страны, у которых величина экспорта за 20 лет превышает величину импорта. #6
здоровооо. спасибо большое!!!!

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

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

Или воспользуйтесь поиском по форуму:
stydent1991
0 / 0 / 0
Регистрация: 13.06.2010
Сообщений: 156
01.05.2012, 20:38  [ТС]     Структура: Найти все страны, у которых величина экспорта за 20 лет превышает величину импорта. #11
НЕ понял..что это?
Yandex
Объявления
01.05.2012, 20:38     Структура: Найти все страны, у которых величина экспорта за 20 лет превышает величину импорта.
Ответ Создать тему
Опции темы

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