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

исправьте ошибки в коде - C++

Восстановить пароль Регистрация
 
Igorek94
2 / 2 / 0
Регистрация: 30.10.2012
Сообщений: 45
27.11.2012, 14:42     исправьте ошибки в коде #1
посмотрите пожалуйста что не так с кодом?
вот задание:Дана целочисленная квадратная матрица. Определить:
• количество строк, не содержащих ни одного нулевого элемента;
• максимальное из чисел, встречающихся в заданной матрице более одного раза.

#include <iostream>
#include <stdlib.h>
using namespace std;


int main()
{
int N;
cin >> N; // Размер матрицы
int a[N][N];
for (int i=0;i<N;i++)
for (int j=0;j<N;j++)
cin >> a[i][j];
int max=0;
for (int i=0;i<N;i++)
for (int j=0;j<N;j++)
if (a[i][j]>max)
{
int ti=i,tj=j;
for (int k=0;k<N;k++)
for (int l=0;l<N;l++)
if ((a[i][j]==a[k][l])&&!((ti==k)&&(tj==l)))
{
max=a[i][j];
break;
}
}
int res=0;
for (int i=0;i<N;i++)
{
bool f1=false;
for (int j=0;j<N;j++)
if (a[i][j]==0)
f1=true;
if (!f1) res++;
}
cout << max <<' '<<res;
system("payse");
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.11.2012, 14:42     исправьте ошибки в коде
Посмотрите здесь:

Массивы(исправьте ошибки) C++
C++ Исправьте ошибки в коде
Исправьте мне ошибки в коде C++
C++ исправьте ошибки в коде
C++ исправьте ошибки в коде
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kuli4ok
31 / 31 / 3
Регистрация: 10.10.2012
Сообщений: 88
27.11.2012, 14:47     исправьте ошибки в коде #2
C++
1
2
3
int N;
 cin >> N; // Размер матрицы
 int a[N][N];
Так массив создавать нельзя.
Если динамический, то так:
C++
1
2
3
4
5
6
7
8
int N
cin >> N;
int **a;
a = new int*[N];
for(int i=0; i<N; i++)
{
    a[i] = new int[N]
}
И удалять его надо так:

C++
1
2
3
4
5
for(int i=0; i<n; i++)
{
    delete [] a[i];
}
delete [] a;
Igorek94
2 / 2 / 0
Регистрация: 30.10.2012
Сообщений: 45
27.11.2012, 14:49  [ТС]     исправьте ошибки в коде #3
Цитата Сообщение от kuli4ok Посмотреть сообщение
C++
1
2
3
int N;
 cin >> N; // Размер матрицы
 int a[N][N];
Так массив создавать нельзя.
Если динамический, то так:
C++
1
2
3
4
5
6
7
8
int N
cin >> N;
int **a;
a = new int*[N];
for(int i=0; i<N; i++)
{
    a[i] = new int[N]
}
И удалять его надо так:

C++
1
2
3
4
5
for(int i=0; i<n; i++)
{
    delete [] a[i];
}
delete [] a;
а можите внести свои изминения в мой код? ото я не знаю куда вставлять
kuli4ok
31 / 31 / 3
Регистрация: 10.10.2012
Сообщений: 88
27.11.2012, 14:55     исправьте ошибки в коде #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
#include <iostream>
 #include <stdlib.h>
 using namespace std;
 
 
 int main()
 {
int N
cin >> N;
int **a;
a = new int*[N];
for(int i=0; i<N; i++)
{
    a[i] = new int[N]
}
 for (int i=0;i<N;i++)
 for (int j=0;j<N;j++)
 cin >> a[i][j];
 int max=0;
 for (int i=0;i<N;i++)
 for (int j=0;j<N;j++)
 if (a[i][j]>max)
 {
 int ti=i,tj=j;
 for (int k=0;k<N;k++)
 for (int l=0;l<N;l++)
 if ((a[i][j]==a[k][l])&&!((ti==k)&&(tj==l)))
 {
 max=a[i][j];
 break;
 }
 }
 int res=0;
 for (int i=0;i<N;i++)
 {
 bool f1=false;
 for (int j=0;j<N;j++)
 if (a[i][j]==0)
 f1=true;
 if (!f1) res++;
 }
 cout << max <<' '<<res;
 for(int i=0; i<n; i++)
 {
    delete [] a[i];
 }
delete [] a;
 return 0;
 }
Но опять же, возможны и другие ошибки.
Yandex
Объявления
27.11.2012, 14:55     исправьте ошибки в коде
Ответ Создать тему
Опции темы

Текущее время: 19:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru