Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 29.04.2010
Сообщений: 8
1

Динамический массив и работа с файлами

29.04.2010, 23:58. Показов 976. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Было дано задание:
Массив определять как динамический. Исходные данные и результаты размещать в текстовых файлах. Обработку массивов оформить в виде функций.
Элемент матрицы называется локальным минимумом, если он строго меньше всех имеющихся у него соседей. Подсчитать количество локальных минимумов заданной матрицы размером 10 на 10.
Найти сумму модулей элементов, расположенных выше главной диагонали.

Вот мой код:
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
#include<iostream>
#include<conio.h>
#include<stdlib.h>
#include<stdio.h>
 
using namespace std;
FILE*fi,*fo;
//==========================
void FVvod(int**a)
{int i,j;
cout<<"Kol-vo strok=10";
cout<<"\nKol-vo stolbcov=10\n";
for(j=0;j<10;j++)
for(i=0;i<10;i++)
fscanf(fo,"%i",&a[i][j]);
cout<<"\nmatriza:\n";
for(i=0;i<10;i++)
for(j=0;j<10;j++)
fscanf(fi,"%i",&a[i][j]);
}
//==========================
void sum(int** a,float tt)
{int i,j;
for(i=0;i<10;i++)
{for(j=0;j<10;j++)
{if (i==j)
tt+=a[i-1][j];}}
cout<<"\nSumma- "<<tt;
}
//==========================
void lokal(int** a)
{int i=0,j=0,k=0;
for(i=0;i<10;i++)
for(j=0;j<10;j++)
{
                if ((i==0)&&(j==0))
                {
                if ((a[i][j]<a[i+1][j])&&(a[i][j]<a[i][j+1])&&(a[i][j]<a[i+1][j+1]))
                k++;
                }
                if ((i==10)&&(j==10))
                {
                if ((a[i][j]<a[i-1][j])&&(a[i][j]<a[i][j-1])&&(a[i][j]<a[i-1][j-1]))
                k++;
                }
                if ((i==10)&&(j==0))
                {
                if ((a[i][j]<a[i][j+1])&&(a[i][j]<a[i-1][j])&&(a[i][j]<a[i-1][j+1]))
                k++;
                }
                if ((i==0)&&(j==10))
                {
                if ((a[i][j]<a[i+1][j])&&(a[i][j]<a[i][j-1])&&(a[i][j]<a[i+1][j-1]))
                k++;
                }
                if ((i==0)&&(j!=0)&&(j!=10))
                {
                if ((a[i][j]<a[i][j-1])&&(a[i][j]<a[i][j+1])&&(a[i][j]<a[i+1][j-1])&&(a[i][j]<a[i+1][j+1])&&(a[i][j]<a[i+1][j]))
                k++;
                }
                if ((i==10)&&(j!=0)&&(j!=10))
                {
                if ((a[i][j]<a[i][j-1])&&(a[i][j]<a[i][j+1])&&(a[i][j]<a[i-1][j-1])&&(a[i][j]<a[i-1][j+1])&&(a[i][j]<a[i-1][j]))
                k++;
                }
                if ((j==0)&&(i!=0)&&(i!=10))
                {
                if ((a[i][j]<a[i-1][j])&&(a[i][j]<a[i+1][j])&&(a[i][j]<a[i-1][j+1])&&(a[i][j]<a[i+1][j+1])&&(a[i][j]<a[i][j+1]))
                k++;
                }
                if ((j==10)&&(i!=0)&&(i!=10))
                {
                if ((a[i][j]<a[i-1][j])&&(a[i][j]<a[i+1][j])&&(a[i][j]<a[i-1][j-1])&&(a[i][j]<a[i+1][j-1])&&(a[i][j]<a[i][j-1]))
                k++;
                }
                if ((i!=0)&&(i!=10)&&(j!=0)&&(j!=10))
                {
                if ((a[i][j]<a[i-1][j])&&(a[i][j]<a[i+1][j])&&(a[i][j]<a[i][j-1])&&(a[i][j]<a[i][j+1])&&(a[i][j]<a[i-1][j-1])&&(a[i][j]<a[i+1][j-1])&&(a[i][j]<a[i-1][j+1])&&(a[i][j]<a[i+1][j+1]))
                k++;
                }
}
cout<<"\nKol-vo.lokal.min- "<<k;
}                         
//==========================
int main()
{int i,j;
 
fi=fopen("D:\\1.txt","w");
fo=fopen("D:\\2.txt","rt");
 
int**a= new int*[10];
for(i=0;i<10;i++)
a[i]=new int[10]; 
    
    FVvod(a);   
    sum(a);
    lokal(a);
    getch();    
    return 0;
}
Прога только начинает запускаться и тут же вылетает....данные в исходном файле стираются...

Если можно то еще объясните как сделать чтобы выводило полученные данные в файл...

Компилятор Dev
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.04.2010, 23:58
Ответы с готовыми решениями:

Работа с файлами и динамический массив
Помогите решить задачу. После решенной задачи, нужно еще отдельно тоже самое решение записать с...

Динамический массив при наследовании, элементами которого являются объекты класса наследника динамический массив
Попробовал создать динамический массив, у которого элементы - объекты класса динамический массив,...

Работа со строками через динамический массив
помогите плз, вроде ничего сложного, а вот реализовать не могу... есть входной поток (файл), в нем...

Сделать динамический массив структур, причем в структуре так же существует динамический массив
Добрый день. Есть такая пзадача: нужно сделать динамический массив структур, причем в структуре...

9
182 / 183 / 55
Регистрация: 08.04.2009
Сообщений: 1,309
30.04.2010, 12:04 2
1)Какой формат входного файла? И что там содержится?

2)в main у Вас: sum(a);
В сама ф-ция void sum(int** a,float tt) с двумя параметрами
0
0 / 0 / 0
Регистрация: 29.04.2010
Сообщений: 8
30.04.2010, 17:19  [ТС] 3
в файле цифры, формат txt, а с функцией sum спасибо, поправил, все равно естественно вылетает...

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
#include<iostream>
#include<conio.h>
#include<stdlib.h>
#include<stdio.h>
 
using namespace std;
FILE*fi,*fo;
//==========================
void FVvod(int**a)
{int i,j;
cout<<"Kol-vo strok=10";
cout<<"\nKol-vo stolbcov=10\n";
for(j=0;j<10;j++)
for(i=0;i<10;i++)
fscanf(fo,"%i",&a[i][j]);
cout<<"\nmatriza:\n";
for(i=0;i<10;i++)
for(j=0;j<10;j++)
fscanf(fi,"%i",&a[i][j]);
}
//==========================
void sum(int** a)
{int i,j;
float tt;
for(i=0;i<10;i++)
{for(j=0;j<10;j++)
{if (i==j)
tt+=a[i-1][j];}}
cout<<"\nSumma- "<<tt;
 
}
//==========================
void lokal(int** a)
{int i=0,j=0,k=0;
for(i=0;i<10;i++)
for(j=0;j<10;j++)
{
                if ((i==0)&&(j==0))
                {
                if ((a[i][j]<a[i+1][j])&&(a[i][j]<a[i][j+1])&&(a[i][j]<a[i+1][j+1]))
                k++;
                }
                if ((i==10)&&(j==10))
                {
                if ((a[i][j]<a[i-1][j])&&(a[i][j]<a[i][j-1])&&(a[i][j]<a[i-1][j-1]))
                k++;
                }
                if ((i==10)&&(j==0))
                {
                if ((a[i][j]<a[i][j+1])&&(a[i][j]<a[i-1][j])&&(a[i][j]<a[i-1][j+1]))
                k++;
                }
                if ((i==0)&&(j==10))
                {
                if ((a[i][j]<a[i+1][j])&&(a[i][j]<a[i][j-1])&&(a[i][j]<a[i+1][j-1]))
                k++;
                }
                if ((i==0)&&(j!=0)&&(j!=10))
                {
                if ((a[i][j]<a[i][j-1])&&(a[i][j]<a[i][j+1])&&(a[i][j]<a[i+1][j-1])&&(a[i][j]<a[i+1][j+1])&&(a[i][j]<a[i+1][j]))
                k++;
                }
                if ((i==10)&&(j!=0)&&(j!=10))
                {
                if ((a[i][j]<a[i][j-1])&&(a[i][j]<a[i][j+1])&&(a[i][j]<a[i-1][j-1])&&(a[i][j]<a[i-1][j+1])&&(a[i][j]<a[i-1][j]))
                k++;
                }
                if ((j==0)&&(i!=0)&&(i!=10))
                {
                if ((a[i][j]<a[i-1][j])&&(a[i][j]<a[i+1][j])&&(a[i][j]<a[i-1][j+1])&&(a[i][j]<a[i+1][j+1])&&(a[i][j]<a[i][j+1]))
                k++;
                }
                if ((j==10)&&(i!=0)&&(i!=10))
                {
                if ((a[i][j]<a[i-1][j])&&(a[i][j]<a[i+1][j])&&(a[i][j]<a[i-1][j-1])&&(a[i][j]<a[i+1][j-1])&&(a[i][j]<a[i][j-1]))
                k++;
                }
                if ((i!=0)&&(i!=10)&&(j!=0)&&(j!=10))
                {
                if ((a[i][j]<a[i-1][j])&&(a[i][j]<a[i+1][j])&&(a[i][j]<a[i][j-1])&&(a[i][j]<a[i][j+1])&&(a[i][j]<a[i-1][j-1])&&(a[i][j]<a[i+1][j-1])&&(a[i][j]<a[i-1][j+1])&&(a[i][j]<a[i+1][j+1]))
                k++;
                }
}
cout<<"\nKol-vo.lokal.min- "<<k;
}                         
//==========================
int main()
{int i,j;
 
fi=fopen("D:\\1.txt","w");
fo=fopen("D:\\2.txt","rt");
 
int**a= new int*[10];
for(i=0;i<10;i++)
a[i]=new int[10]; 
    
    FVvod(a);   
    sum(a);
    lokal(a);
    getch();    
    return 0;
}
Проблема с чтением из файла только я ее найти не могу...

П.С. в файле такой набор чисел:
Код
1 2 3 4 5 6 7 8 9 0
2 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
0
182 / 183 / 55
Регистрация: 08.04.2009
Сообщений: 1,309
01.05.2010, 06:46 4
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
#include<iostream>
#include <fstream>
using namespace std;
 ifstream in("D:\\1.txt");
 ofstream out  ("D:\\2.txt");
//==========================
void FVvod(int**a)
{int i=0,j=0;
cout<<"Kol-vo strok=10";
cout<<"\nKol-vo stolbcov=10\n";
while(in)
{
         for(i=0;i<10;i++){
for(j=0;j<10;j++){
in>> a[i][j];
     }                      
}
}
 
       
                             
//scanf(fo,"%i",&a[i][j]);
cout<<"\nmatriza:\n";
for(i=0;i<10;i++){
for(j=0;j<10;j++){
                  cout << a[i][j] << " ";
                  }
                  cout << "\n";
                  } 
//scanf(fi,"%i",&a[i][j]);
}
//==========================
void sum(int** a)
{int i,j;
float tt;
for(i=1;i<=10;i++)//!!!!!!!!!!!!!!!!!!!!!!!!!
{for(j=0;j<10;j++)
{if (i==j)
tt+=a[i-1][j];}}// Çäåñü была îøèáêà: i-1 (ïîëó÷àëîñü,÷òî íà 1-é 
//èòåðàöèè (0-1), à èíäåêñ îòðèö áûòü íå ìîæåò)
out <<"\nÑóììà = "<<tt;// Âûâîä â ôàéë 2.txt
cout<<"\nSumma- "<<tt;
 
}
//==========================
void lokal(int** a)
{int i=0,j=0,k=0;
for(i=0;i<10;i++)
for(j=0;j<10;j++)
{
                if ((i==0)&&(j==0))
                {
                if ((a[i][j]<a[i+1][j])&&(a[i][j]<a[i][j+1])&&(a[i][j]<a[i+1][j+1]))
                k++;
                }
                if ((i==10)&&(j==10))
                {
                if ((a[i][j]<a[i-1][j])&&(a[i][j]<a[i][j-1])&&(a[i][j]<a[i-1][j-1]))
                k++;
                }
                if ((i==10)&&(j==0))
                {
                if ((a[i][j]<a[i][j+1])&&(a[i][j]<a[i-1][j])&&(a[i][j]<a[i-1][j+1]))
                k++;
                }
                if ((i==0)&&(j==10))
                {
                if ((a[i][j]<a[i+1][j])&&(a[i][j]<a[i][j-1])&&(a[i][j]<a[i+1][j-1]))
                k++;
                }
                if ((i==0)&&(j!=0)&&(j!=10))
                {
                if ((a[i][j]<a[i][j-1])&&(a[i][j]<a[i][j+1])&&(a[i][j]<a[i+1][j-1])&&(a[i][j]<a[i+1][j+1])&&(a[i][j]<a[i+1][j]))
                k++;
                }
                if ((i==10)&&(j!=0)&&(j!=10))
                {
                if ((a[i][j]<a[i][j-1])&&(a[i][j]<a[i][j+1])&&(a[i][j]<a[i-1][j-1])&&(a[i][j]<a[i-1][j+1])&&(a[i][j]<a[i-1][j]))
                k++;
                }
                if ((j==0)&&(i!=0)&&(i!=10))
                {
                if ((a[i][j]<a[i-1][j])&&(a[i][j]<a[i+1][j])&&(a[i][j]<a[i-1][j+1])&&(a[i][j]<a[i+1][j+1])&&(a[i][j]<a[i][j+1]))
                k++;
                }
                if ((j==10)&&(i!=0)&&(i!=10))
                {
                if ((a[i][j]<a[i-1][j])&&(a[i][j]<a[i+1][j])&&(a[i][j]<a[i-1][j-1])&&(a[i][j]<a[i+1][j-1])&&(a[i][j]<a[i][j-1]))
                k++;
                }
                if ((i!=0)&&(i!=10)&&(j!=0)&&(j!=10))
                {
                if ((a[i][j]<a[i-1][j])&&(a[i][j]<a[i+1][j])&&(a[i][j]<a[i][j-1])&&(a[i][j]<a[i][j+1])&&(a[i][j]<a[i-1][j-1])&&(a[i][j]<a[i+1][j-1])&&(a[i][j]<a[i-1][j+1])&&(a[i][j]<a[i+1][j+1]))
                k++;
                }
}
out << "\nÊîë-âî ëîêàëüíûõ ìèíèìóìîâ- "<<  k;// Âûâîä â ôàéë 2.txt
cout<<"\nKol-vo.lokal.min- "<<k;
}                         
//==========================
int main()
{int i,j;
 
 
//fi=fopen("D:\\1.txt","w");
//fo=fopen("D:\\2.txt","rt");
 
int**a= new int*[10];
for(i=0;i<10;i++)
a[i]=new int[10]; 
    
    FVvod(a);   
        sum(a);
        lokal(a);
        cin.get();        
}
1
0 / 0 / 0
Регистрация: 29.04.2010
Сообщений: 8
01.05.2010, 21:34  [ТС] 5
vet, ОГРОМНОЕ СПАСИБО!!!!! Не знаю даже как благодарить!!
и в Сумме я тупанул
Большее спасибо еще раз
0
182 / 183 / 55
Регистрация: 08.04.2009
Сообщений: 1,309
02.05.2010, 02:29 6
Пожалуйста
0
Быдлокодер
512 / 298 / 85
Регистрация: 22.11.2009
Сообщений: 892
02.05.2010, 08:29 7
lubchuk, Я, может быть, не в тему, но совет на будущее - постарайтесь делать код более читабельным, а то разобрать его крайне проблематично.
0
0 / 0 / 0
Регистрация: 29.04.2010
Сообщений: 8
07.05.2010, 16:47  [ТС] 8
еще есть вопрос, по этой программе...
вот это место нужно заменить:
C++
1
2
if ((a[i][j]<a[i-1][j])&&(a[i][j]<a[i+1][j])&&(a[i][j]<a[i][j-1])&&(a[i][j]<a[i][j+1])&&(a[i][j]<a[i-1][j-1])&&(a[i][j]<a[i+1][j-1])&&(a[i][j]<a[i-1][j+1])&&(a[i][j]<a[i+1][j+1]))
                k++;
я сделал так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
if ((i!=0)&&(i!=9)&&(j!=0)&&(j!=9))
                {
                m=i-1;
                s=j-1;
                t=i+2;
                l=j+2;
                q=0;
                y=a[i][j];
                for(b=m;b<t;b++)
                for(c=s;c<l;c++)
                if ((b!=(m+1))&&(c!=(s+1)))
                if (y<(a[b][c])) 
                q++;        
                if (q==8)
                k++;
Определил переменные так:
C++
1
int i,j,b,c,m,s,t,l,y=0,q,k=0;
набор символов в документе 1.txt такой:
1 2 1 4 5 6 7 8 9 0
2 5 5 4 5 6 7 8 9 1
1 5 5 4 5 6 7 8 9 0
2 5 0 4 5 6 7 8 9 1
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 9
0 2 3 4 0 6 7 8 9 0

И вот 0 (3 столбик, 4 строка) прога не видит....


Вот это полная программа которую нужно заменить:
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
 
#include<iostream>
#include <fstream>
using namespace std;
 ifstream in("D:\\1.txt");
 ofstream out  ("D:\\2.txt");
//==========================
void FVvod(int**a)
{int i=0,j=0;
cout<<"Kol-vo strok=10";
cout<<"\nKol-vo stolbcov=10\n";
while(in)
{
         for(i=0;i<10;i++){
for(j=0;j<10;j++){
in>> a[i][j];
     }                      
}
}
 
       
                             
//scanf(fo,"%i",&a[i][j]);
cout<<"\nmatriza:\n";
for(i=0;i<10;i++){
for(j=0;j<10;j++){
                  cout << a[i][j] << " ";
                  }
                  cout << "\n";
                  } 
//scanf(fi,"%i",&a[i][j]);
}
//==========================
void sum(int** a)
{int i,j;
float tt;
for(i=0;i<10;i++)
{for(j=0;j<10;j++)
{if (j>i)
tt+=a[i][j];}}out <<"\nSumma = "<<tt;
cout<<"\nSumma- "<<tt;
 
}
//==========================
void lokal(int** a)
{int i,j,b,c,m,s,t,l,y=0,q,k=0;
for(i=0;i<10;i++)
for(j=0;j<10;j++)
{
                if ((i==0)&&(j==0))
                if ((a[i][j]<a[i+1][j])&&(a[i][j]<a[i][j+1])&&(a[i][j]<a[i+1][j+1]))
                k++;
                if ((i==9)&&(j==9))
                if ((a[i][j]<a[i-1][j])&&(a[i][j]<a[i][j-1])&&(a[i][j]<a[i-1][j-1]))
                k++;
                if ((i==9)&&(j==0))
                if ((a[i][j]<a[i][j+1])&&(a[i][j]<a[i-1][j])&&(a[i][j]<a[i-1][j+1]))
                k++;
                if ((i==0)&&(j==9))
                if ((a[i][j]<a[i+1][j])&&(a[i][j]<a[i][j-1])&&(a[i][j]<a[i+1][j-1]))
                k++;
                if ((i==0)&&(j!=0)&&(j!=9))
                if ((a[i][j]<a[i][j-1])&&(a[i][j]<a[i][j+1])&&(a[i][j]<a[i+1][j-1])&&(a[i][j]<a[i+1][j+1])&&(a[i][j]<a[i+1][j]))
                k++;
                if ((i==9)&&(j!=0)&&(j!=9))
                if ((a[i][j]<a[i][j-1])&&(a[i][j]<a[i][j+1])&&(a[i][j]<a[i-1][j-1])&&(a[i][j]<a[i-1][j+1])&&(a[i][j]<a[i-1][j]))
                k++;
                if ((j==0)&&(i!=0)&&(i!=9))
                if ((a[i][j]<a[i-1][j])&&(a[i][j]<a[i+1][j])&&(a[i][j]<a[i-1][j+1])&&(a[i][j]<a[i+1][j+1])&&(a[i][j]<a[i][j+1]))
                k++;
                if ((j==9)&&(i!=0)&&(i!=9))
                if ((a[i][j]<a[i-1][j])&&(a[i][j]<a[i+1][j])&&(a[i][j]<a[i-1][j-1])&&(a[i][j]<a[i+1][j-1])&&(a[i][j]<a[i][j-1]))
                k++;   
           [B] if ((i!=0)&&(i!=9)&&(j!=0)&&(j!=9))                                           
                if ((a[i][j]<a[i-1][j])&&(a[i][j]<a[i+1][j])&&(a[i][j]<a[i][j-1])&&(a[i][j]<a[i][j+1])&&(a[i][j]<a[i-1][j-1])&&(a[i][j]<a[i+1][j-1])&&(a[i][j]<a[i-1][j+1])&&(a[i][j]<a[i+1][j+1]))
                k++;[/B]
                }
                
                
                              
                         
out << "\nКол-во локальных минимумов- "<<  k;// Вывод в файл 2.txt
cout<<"\nKol-vo.lokal.min- "<<k;
}                         
//==========================
int main()
{int i,j;
 
 
//fi=fopen("D:\\1.txt","w");
//fo=fopen("D:\\2.txt","rt");
 
int**a= new int*[10];
for(i=0;i<10;i++)
a[i]=new int[10]; 
    
    FVvod(a);   
        sum(a);
        lokal(a);
        cin.get();        
}
Я заменил так:
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
#include<iostream>
#include <fstream>
using namespace std;
 ifstream in("D:\\1.txt");
 ofstream out  ("D:\\2.txt");
//==========================
void FVvod(int**a)
{int i=0,j=0;
cout<<"Kol-vo strok=10";
cout<<"\nKol-vo stolbcov=10\n";
while(in)
{
         for(i=0;i<10;i++){
for(j=0;j<10;j++){
in>> a[i][j];
     }                      
}
}
 
       
                             
//scanf(fo,"%i",&a[i][j]);
cout<<"\nmatriza:\n";
for(i=0;i<10;i++){
for(j=0;j<10;j++){
                  cout << a[i][j] << " ";
                  }
                  cout << "\n";
                  } 
//scanf(fi,"%i",&a[i][j]);
}
//==========================
void sum(int** a)
{int i,j;
float tt;
for(i=0;i<10;i++)
{for(j=0;j<10;j++)
{if (j>i)
tt+=a[i][j];}}out <<"\nSumma = "<<tt;
cout<<"\nSumma- "<<tt;
 
}
//==========================
void lokal(int** a)
{int i,j,b,c,m,s,t,l,y=0,q,k=0;
for(i=0;i<10;i++)
for(j=0;j<10;j++)
{
                if ((i==0)&&(j==0))
                if ((a[i][j]<a[i+1][j])&&(a[i][j]<a[i][j+1])&&(a[i][j]<a[i+1][j+1]))
                k++;
                if ((i==9)&&(j==9))
                if ((a[i][j]<a[i-1][j])&&(a[i][j]<a[i][j-1])&&(a[i][j]<a[i-1][j-1]))
                k++;
                if ((i==9)&&(j==0))
                if ((a[i][j]<a[i][j+1])&&(a[i][j]<a[i-1][j])&&(a[i][j]<a[i-1][j+1]))
                k++;
                if ((i==0)&&(j==9))
                if ((a[i][j]<a[i+1][j])&&(a[i][j]<a[i][j-1])&&(a[i][j]<a[i+1][j-1]))
                k++;
                if ((i==0)&&(j!=0)&&(j!=9))
                if ((a[i][j]<a[i][j-1])&&(a[i][j]<a[i][j+1])&&(a[i][j]<a[i+1][j-1])&&(a[i][j]<a[i+1][j+1])&&(a[i][j]<a[i+1][j]))
                k++;
                if ((i==9)&&(j!=0)&&(j!=9))
                if ((a[i][j]<a[i][j-1])&&(a[i][j]<a[i][j+1])&&(a[i][j]<a[i-1][j-1])&&(a[i][j]<a[i-1][j+1])&&(a[i][j]<a[i-1][j]))
                k++;
                if ((j==0)&&(i!=0)&&(i!=9))
                if ((a[i][j]<a[i-1][j])&&(a[i][j]<a[i+1][j])&&(a[i][j]<a[i-1][j+1])&&(a[i][j]<a[i+1][j+1])&&(a[i][j]<a[i][j+1]))
                k++;
                if ((j==9)&&(i!=0)&&(i!=9))
                if ((a[i][j]<a[i-1][j])&&(a[i][j]<a[i+1][j])&&(a[i][j]<a[i-1][j-1])&&(a[i][j]<a[i+1][j-1])&&(a[i][j]<a[i][j-1]))
                k++;                                              
                if ((i!=0)&&(i!=9)&&(j!=0)&&(j!=9))
                {
                m=i-1;
                s=j-1;
                t=i+2;
                l=j+2;
                q=0;
                y=a[i][j];
                for(b=m;b<t;b++)
                for(c=s;c<l;c++)
                if ((b!=(m+1))&&(c!=(s+1)))
                if (y<(a[b][c])) 
                q++;        
                if (q==8)
                k++;
                }
                }
                
                
                              
                         
out << "\nКол-во локальных минимумов- "<<  k;
cout<<"\nKol-vo.lokal.min- "<<k;
}                         
//==========================
int main()
{int i,j;
 
 
//fi=fopen("D:\\1.txt","w");
//fo=fopen("D:\\2.txt","rt");
 
int**a= new int*[10];
for(i=0;i<10;i++)
a[i]=new int[10]; 
    
    FVvod(a);   
        sum(a);
        lokal(a);
        cin.get();       
}

Смотрим Функцию lokal...
0
0 / 0 / 0
Регистрация: 29.04.2010
Сообщений: 8
09.05.2010, 15:48  [ТС] 9
Буду благодарен если поможете...
Есть у кого какие предложения?
П.С. Сори за даблпостинг...
0
0 / 0 / 0
Регистрация: 29.04.2010
Сообщений: 8
11.05.2010, 02:15  [ТС] 10
Все уже не нужна помощь))) Нашел в чем ошибка, а вернее не точность)))
Правильный код такой:
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
 
#include<iostream>
#include <fstream>
using namespace std;
 ifstream in("D:\\1.txt");
 ofstream out  ("D:\\2.txt");
//==========================
void FVvod(int**a)
{int i=0,j=0;
cout<<"Kol-vo strok=10";
cout<<"\nKol-vo stolbcov=10\n";
while(in)
{
         for(i=0;i<10;i++){
for(j=0;j<10;j++){
in>> a[i][j];
     }                      
}
}
 
       
                             
//scanf(fo,"%i",&a[i][j]);
cout<<"\nmatriza:\n";
for(i=0;i<10;i++){
for(j=0;j<10;j++){
                  cout << a[i][j] << " ";
                  }
                  cout << "\n";
                  } 
//scanf(fi,"%i",&a[i][j]);
}
//==========================
void sum(int** a)
{int i,j;
float tt;
for(i=0;i<10;i++)
{for(j=0;j<10;j++)
{if (j>i)
tt+=a[i][j];}}out <<"\nÑóììà = "<<tt;// Âûâîä â ôàéë 2.txt
cout<<"\nSumma- "<<tt;
 
}
//==========================
void lokal(int** a)
{int i,j,b,c,m,s,t,l,k=0,p,q,n;
float y;
for(i=0;i<10;i++)
for(j=0;j<10;j++)
{                
                if ((i==0)&&(j==0))
                if ((a[i][j]<a[i+1][j])&&(a[i][j]<a[i][j+1])&&(a[i][j]<a[i+1][j+1]))
                k++;
                if ((i==9)&&(j==9))
                if ((a[i][j]<a[i-1][j])&&(a[i][j]<a[i][j-1])&&(a[i][j]<a[i-1][j-1]))
                k++;
                if ((i==9)&&(j==0))
                if ((a[i][j]<a[i][j+1])&&(a[i][j]<a[i-1][j])&&(a[i][j]<a[i-1][j+1]))
                k++;
                if ((i==0)&&(j==9))
                if ((a[i][j]<a[i+1][j])&&(a[i][j]<a[i][j-1])&&(a[i][j]<a[i+1][j-1]))
                k++;
                if ((i==0)&&(j!=0)&&(j!=9))
                if ((a[i][j]<a[i][j-1])&&(a[i][j]<a[i][j+1])&&(a[i][j]<a[i+1][j-1])&&(a[i][j]<a[i+1][j+1])&&(a[i][j]<a[i+1][j]))
                k++;
                if ((i==9)&&(j!=0)&&(j!=9))
                if ((a[i][j]<a[i][j-1])&&(a[i][j]<a[i][j+1])&&(a[i][j]<a[i-1][j-1])&&(a[i][j]<a[i-1][j+1])&&(a[i][j]<a[i-1][j]))
                k++;
                if ((j==0)&&(i!=0)&&(i!=9))
                if ((a[i][j]<a[i-1][j])&&(a[i][j]<a[i+1][j])&&(a[i][j]<a[i-1][j+1])&&(a[i][j]<a[i+1][j+1])&&(a[i][j]<a[i][j+1]))
                k++;
                if ((j==9)&&(i!=0)&&(i!=9))
                if ((a[i][j]<a[i-1][j])&&(a[i][j]<a[i+1][j])&&(a[i][j]<a[i-1][j-1])&&(a[i][j]<a[i+1][j-1])&&(a[i][j]<a[i][j-1]))
                k++;                                              
                }
for(i=1;i<9;i++)
for(j=1;j<9;j++)       
{
                       
                m=i-1;
                s=j-1;
                t=i+2;
                l=j+2;
                p=i;
                n=j;
                q=0;
                y=a[i][j];                      
                for(b=m;b<t;b++)
                for(c=s;c<l;c++)                                             
                if (y<a[b][c])                 
                q++;                     
                if (q==8)
                k++;
                
                }
                
                
                              
                         
out << "\nÊîë-âî ëîêàëüíûõ ìèíèìóìîâ- "<<  k;// Âûâîä â ôàéë 2.txt
cout<<"\nKol-vo.lokal.min- "<<k;
}                         
//==========================
int main()
{int i,j;
 
 
//fi=fopen("D:\\1.txt","w");
//fo=fopen("D:\\2.txt","rt");
 
int**a= new int*[10];
for(i=0;i<10;i++)
a[i]=new int[10]; 
    
    FVvod(a);   
        sum(a);
        lokal(a);
        cin.get();        
}
0
11.05.2010, 02:15
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.05.2010, 02:15
Помогаю со студенческими работами здесь

Работа с файлами. Массив.
Задача 1.рабта с файлами. Дан файл f,компоненты которого являются целыми числами.Получить в файле...

Динамический массив ,элементами которого являются объекты класса динамический массив
Доброго времени суток, захотел создать динамический массив ,элементами которого являются объекты...

Работа с файлами. Двумерный массив
Доброго времени суток. Есть проблема. Нужно считать двумерный - квадратичный массив из файла .txt ,...

Работа с файлами. Одномерный массив
Здравствуйте! =о) Выручайте. Совсем не знаю как её написать =о( Разработать программу сортировки...

Работа с файлами и одномерный массив
Помогите написать программу на С, которая считывает английский текст из файла и выводит на экран...

работа с txt файлами. массив записей
Здравствуйте) есть массив записей А. есть сама запись В в которую входит несколько полей a, b,c...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru