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

Странная ошибка в программе - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Шаблон двухсвязный список, храним указатель не элемент http://www.cyberforum.ru/cpp-beginners/thread416452.html
#include <cstdlib> #include <iostream> #include <conio.h> #include "DSpisok.h" using namespace std; int main(int argc, char *argv) { //randomize(); List <double> A;
C++ Выделение памяти под матрицу Всем привет. float **AllocMat(int Rows, int Colomns) { float ** Mat; try { Mat = new float * ; if( Mat == NULL ) throw 0; for (int i = 0; i < Rows; i++) http://www.cyberforum.ru/cpp-beginners/thread416417.html
C++ Работа с матрицей
Нужно написать программу c помощью функций, которая находит максимальный среди элементов всех строк матрицы, которые упорядочены(либо по возрастнанию, либо по убыванию). Помогите нубу пожалуйста.
C++ Cимвольные строки
Дана символьная строка. Написать программу, которая заменяет каждую латинскую букву в исходной строке на две такие же буквы. Обработку строки оформит в виде функции, ввод и вывод данных - в основной программе.
C++ Как сохранить dynamic_bitset http://www.cyberforum.ru/cpp-beginners/thread416340.html
Здравствуйте, уважаемые господа. Как прав. сохранить boost::dynamic_bitset в файл и считать его после этого? boost::dynamic_bitset <> tile_bit; ... void save () {
C++ Быстрый поезд (задача с acmp) Задача Не проходит 7 тест #include <string> #include <fstream> #include <cstdlib> int main(){ подробнее

Показать сообщение отдельно
Johnlion
 Аватар для Johnlion
62 / 2 / 0
Регистрация: 11.05.2011
Сообщений: 666
24.12.2011, 18:52  [ТС]     Странная ошибка в программе
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <locale.h>
#define N 50
 
struct vxod
{
    char name[N];
    float god_1940;
    float god_1950;
    float god_1955;
    float god_1958;
};
 
struct vixod
{
    char name[N];
    float min;
    float absol_prirost;
};
 
char ss1[55] = "-----------------------------------------";
 
void main (int argc, char *argv[])
{
    setlocale(LC_ALL,"");
    void read_print_vxod(FILE*);  //Прототип функции чтения и вывода на экран исходного файла
    void read_print_vixod(FILE*);  //Прототип функции чтения и вывода на экран файла результата
    void job(FILE*, FILE*);
 
    FILE * filein;               //Указатель на исходный файл
    FILE * fileout;              //Указатель на файл результата
    char name_vxod[13];            //имя исходного файла
    
    if (argc==0)
    {
        printf ("Укажите имя выходного файла в командной строке: ");
        exit(-1);
    };
    
    printf("Введите имя входного файла: ");
    scanf("%s", name_vxod);
    if((filein = fopen(name_vxod,"r")) == NULL)//открытие исходного файла для чтения
    {                            
        printf("Файл %s не открыт.", name_vxod);
        getch();
        exit(-1);
    }
 
    if((fileout = fopen(argv[1],"w")) == NULL)   //открытие файла результата для записи
    {
        printf("Файл %s не открыт.", argv[1]);
        exit(-1);
    }
    
    read_print_vxod(filein);       //чтение и печать исходного файла
    fclose(filein);               //закрытие исходного файла
    _getch();
 
    if((filein = fopen(name_vxod,"r")) == NULL)   //повторное открытие исходного файла для чтения
    {
        printf("Файл %s не открыт.", name_vxod);
        exit(-1);
    }
    
    job(filein, fileout);        //Выполнение задания
    fclose(filein);              //закрытие исходного файла
    fclose(fileout);             //закрытие файла результата
 
    if((fileout = fopen(argv[1],"r")) == NULL)    //открытие файла результата для чтения
    {
        printf("Файл %s не открыт.", argv[1]);
        exit(-1);
    }
    
    read_print_vixod(fileout);       //чтение и печать выходного файла
    fclose(fileout);               //закрытие файла результата
    getch();
}
 
 
void read_print_vixod (FILE*fileout) //функция чтения и вывода на экран файла результата
{
    struct vixod strvix;   
    printf("Выходной файл: \n");
    while (fscanf(fileout, "%s%f", strvix.name, strvix.min)!=EOF)  //Чтение структуры из файла результата
           printf("%s, %f", strvix.name, strvix.min); //вывод на экран
}
 
void read_print_vxod(FILE*filein)  //функция чтения и вывода на экран исходного файла 
{
    struct vxod str; 
    void shapka();               //Прототип функции печати шапки 1
    printf("Входной файл: \n");
    shapka();
    while (fscanf(filein, "%s%f%f%f%f",str.name, &str.god_1940, &str.god_1950, &str.god_1955, &str.god_1958) != EOF)  //Чтение структуры из исходного файла 
            printf("!%6s!%4.1f!%4.1f!%4.1f!%4.1f!\n", str.name, &str.god_1940, &str.god_1950, &str.god_1955, &str.god_1958); //вывод на экран
            printf("%s\n",ss1);
}
 
void shapka()                    //функция печати шапки 1
{
    printf("Показатели развития внутр. торговли СССР\n");   
    printf("%s", ss1);
    printf("!                   !  1940  !  1950  !  1955  !  1958  !\n");
    printf("%s", ss1);
}
 
void job (FILE * filein, FILE * fileout)
{
    struct vxod str;
    struct vixod strvix;
    fscanf(filein, "%s%f%f%f%f",str.name, &str.god_1940, &str.god_1950, &str.god_1955, &str.god_1958);
    strvix.min = ((str.god_1955-str.god_1940)*100)/str.god_1940;
    strcpy (strvix.name, str.name);
    strvix.absol_prirost = str.god_1955-str.god_1940;
    while (fscanf(filein, "%s%f%f%f%f",str.name, &str.god_1940, &str.god_1950, &str.god_1955, &str.god_1958)!=EOF)
    {
        if (((str.god_1955-str.god_1940)*100)/str.god_1940 < strvix.min)
        {
            strvix.min = ((str.god_1955-str.god_1940)*100)/str.god_1940;
            strcpy (strvix.name, str.name);
            strvix.absol_prirost = str.god_1955-str.god_1940;
        }
    }
    fprintf (fileout, "Минимальный прирост в процентах в 1955 по сравнению с 1940 был у %s и равен %f\n\n", strvix.name, strvix.min);
    fprintf (fileout, "А абсолютный прирост за период 1940-1950 у %s был равен %f", strvix.name, strvix.absol_prirost);
    fclose(fileout);
}
 
Текущее время: 16:47. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru