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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 20, средняя оценка - 4.75
няманяся
0 / 0 / 0
Регистрация: 11.04.2010
Сообщений: 22
#1

Заполнение массива по диагонали! - C++

11.04.2010, 12:51. Просмотров 2473. Ответов 24
Метки нет (Все метки)

всем привет!помогите пожалуйста!не получается выстроить порядок! задача такая! заполнить массив 6*6 цыфрами от 1 до 21 по следущей схеме:
6 0 0 0 0 0
5 11 0 0 0 0
4 10 0 0 0 0
3 9 14 18 0 0
2 8 13 17 20 0
1 7 12 16 19 21
(нули по диагонали!)помогите,плиз)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.04.2010, 12:51     Заполнение массива по диагонали!
Посмотрите здесь:

Заполнение двумерного массива (зануление диагонали) C++
C++ Заполнение матрицы змейкой по диагонали
заполнение матрицы по диагонали змейкой C++
Заполнение массива значениями из символьного массива C++
C++ Заполнение массива 6х6 по диагонали
C++ Заполнение главной диагонали матрицы максимальными элементами
C++ Заполнение массива
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
PointsEqual
ниначмуроФ
834 / 518 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
11.04.2010, 23:19     Заполнение массива по диагонали! #2
а где 15?
няманяся
0 / 0 / 0
Регистрация: 11.04.2010
Сообщений: 22
12.04.2010, 17:27  [ТС]     Заполнение массива по диагонали! #3
блин,пропустила)))) над 14 !!!
PointsEqual
ниначмуроФ
834 / 518 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
12.04.2010, 19:26     Заполнение массива по диагонали! #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
#include <iostream>
#include <vector>
#include <iomanip>
#include <conio.h>
 
void fillMatrix(std::vector< std::vector<int> > matrix, int ROWS, int COLS);
 
int main(){
    const int ROWS=6;
    const int COLS=6;
    std::vector< std::vector<int> > matrix(ROWS, std::vector<int>(COLS));
    fillMatrix(matrix,ROWS,COLS);
    getch();
    return 0;
}
 
 
void fillMatrix(std::vector< std::vector<int> > matrix, int ROWS, int COLS){
    int k=1;
    int i=ROWS-1;
    int j=0;
 
    while (j<COLS){
        while (i>=(0+j)){
            matrix[i][j]=k;
            k++;
            i--;
        }
        j++;
        i=ROWS-1;
    }
 
     for (int i=0; i<ROWS; i++){
     for (int j=0; j<COLS; j++){
         std::cout<<std::setw(4)<<matrix[i][j];
     }
     std::cout<<std::endl;
    }
}
няманяся
0 / 0 / 0
Регистрация: 11.04.2010
Сообщений: 22
13.04.2010, 19:38  [ТС]     Заполнение массива по диагонали! #5
спасибо большое))).....нооо.....выписывает ошибку на строчке
for (int i=0; i<ROWS; i++){

ошибка описывается,как - error C2374: 'i' : redefinition; multiple initialization
я понятия не имею что это?)
PointsEqual
ниначмуроФ
834 / 518 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
13.04.2010, 21:53     Заполнение массива по диагонали! #6
у меня все работает)
Вложения
Тип файла: rar заполнение матрицы по диогонали.rar (82.9 Кб, 57 просмотров)
PointsEqual
ниначмуроФ
834 / 518 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
13.04.2010, 22:04     Заполнение массива по диагонали! #7
попробуй убери в 33 и 34 int перед i и j соответственно
няманяся
0 / 0 / 0
Регистрация: 11.04.2010
Сообщений: 22
13.04.2010, 22:11  [ТС]     Заполнение массива по диагонали! #8
слушай,а если я тебе щас другое решение пришлю,сможешь найти ошибку?я всю голову сломала,не знаю че не так?)))может попробуешь!
PointsEqual
ниначмуроФ
834 / 518 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
13.04.2010, 22:12     Заполнение массива по диагонали! #9
давай попробую
няманяся
0 / 0 / 0
Регистрация: 11.04.2010
Сообщений: 22
13.04.2010, 22:12  [ТС]     Заполнение массива по диагонали! #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
#include <math.h>
#include <stdio.h>
# include <iostream.h>
 
 
void main()
{FILE*f;
 f=fopen("d:\cpp\lab3.txt","w+");
 
  int mas[6][6],i,j,k;
 for (i=0;i<6;i++)
{ for(j=0;j<6;j++)
   mas[i][j]=0;
}
k=6;
mas[0][0]=6;
for(i=1;i<6;i++)
{k--;
  mas[i][i]=mas[i-1][i-1]+k;
 for(j=i+1;j<6;j++)
mas[i][j]=mas[i][j-1]-1;
 printf("%5d",mas[i][j], mas[i][i]);
 fprintf(f,"%5d",mas[i][j], mas[i][i]);
 
}
 
for (j=0;j<6;j++)
{ for(i=0;i<6;i++)
 
   cout<<mas[i][j]<<" ";
   cout<<endl;
   
}
printf("\n");
   fprintf(f,"\n");
 
}
PointsEqual
ниначмуроФ
834 / 518 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
13.04.2010, 22:14     Заполнение массива по диагонали! #11
к сожадению в с не очень разбираюсь, мой код - С++
няманяся
0 / 0 / 0
Регистрация: 11.04.2010
Сообщений: 22
13.04.2010, 22:16  [ТС]     Заполнение массива по диагонали! #12
блииин как жалко(((я думала что ты хоть поможешь((((это решение ведь на много легче
PointsEqual
ниначмуроФ
834 / 518 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
13.04.2010, 22:17     Заполнение массива по диагонали! #13
в моем коде где у тебя ошибки?
няманяся
0 / 0 / 0
Регистрация: 11.04.2010
Сообщений: 22
13.04.2010, 22:18  [ТС]     Заполнение массива по диагонали! #14
33,34! пишет че то про i
PointsEqual
ниначмуроФ
834 / 518 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
13.04.2010, 22:19     Заполнение массива по диагонали! #15
я же сказал убери int в тех строках
няманяся
0 / 0 / 0
Регистрация: 11.04.2010
Сообщений: 22
13.04.2010, 22:19  [ТС]     Заполнение массива по диагонали! #16
понимаешь.....я просто не понимаю твое решение))))и объяснить его вряд ли смогу
PointsEqual
ниначмуроФ
834 / 518 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
13.04.2010, 22:21     Заполнение массива по диагонали! #17
попробуй полностью скопируй и вставь
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
#include <iostream>
#include <vector>
#include <iomanip>
#include <conio.h>
 
void fillMatrix(std::vector< std::vector<int> > matrix, int ROWS, int COLS);
 
int main(){
    const int ROWS=6;
    const int COLS=6;
    std::vector< std::vector<int> > matrix(ROWS, std::vector<int>(COLS));
    fillMatrix(matrix,ROWS,COLS);
    getch();
    return 0;
}
 
 
void fillMatrix(std::vector< std::vector<int> > matrix, int ROWS, int COLS){
    int k=1;
    int i=ROWS-1;
    int j=0;
 
    while (j<COLS){
        while (i>=(0+j)){
            matrix[i][j]=k;
            k++;
            i--;
        }
        j++;
        i=ROWS-1;
    }
 
     for (i=0; i<ROWS; i++){
     for (j=0; j<COLS; j++){
         std::cout<<std::setw(4)<<matrix[i][j];
     }
     std::cout<<std::endl;
    }
}
я могу объяснить, тут ниче сложного
няманяся
0 / 0 / 0
Регистрация: 11.04.2010
Сообщений: 22
13.04.2010, 22:22  [ТС]     Заполнение массива по диагонали! #18
ну препод наверно поймет что это уже из с++....и что об этом мы впринципе еще не говорили....откуда я это взяла?))))))
PointsEqual
ниначмуроФ
834 / 518 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
13.04.2010, 22:27     Заполнение массива по диагонали! #19
можеш сказать - самообучение, друг помог, и тд)
Но в твоем коде к сожалению не могу сделать ничего)

Добавлено через 3 минуты
твой код оч плохой)))
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.04.2010, 22:28     Заполнение массива по диагонали!
Еще ссылки по теме:

Заполнение массива C++
Заполнение матрицы с левого нижнего угла по диагонали (исправить программу) C++
Заполнение массива змейкой по диагонали C++
C++ Экзотическое заполнение массива параллельно побочной диагонали
Обменять элементы массива на главной диагонали с элементами на побочной диагонали C++

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

Или воспользуйтесь поиском по форуму:
няманяся
0 / 0 / 0
Регистрация: 11.04.2010
Сообщений: 22
13.04.2010, 22:28  [ТС]     Заполнение массива по диагонали! #20
ды ты чё)))))))чё это он плохой то?)))потому что твой хороший?)))))ахаха
Yandex
Объявления
13.04.2010, 22:28     Заполнение массива по диагонали!
Ответ Создать тему
Опции темы

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