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

Удалить столбец матрицы с номером K. - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.58
Lifehouse
0 / 0 / 0
Регистрация: 12.11.2011
Сообщений: 58
13.11.2011, 10:40     Удалить столбец матрицы с номером K. #1
Дана матрица размера M × N и целое число K (1 ≤ K ≤ M). Удалить столбец матрицы с номером K.

Добавлено через 21 минуту
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
#include <iostream.h>
#include <conio.h>
#include <iomanip.h>
#include <stdlib.h>
#include <time.h>
using namespace std;
 
int main (){
 
        srand(time(NULL));
        int m=0,n=0,k=0,i,j,jn;
 
        cout << "Enter the size of array M x N: ";
        cin >> m >> n;
        int **mass=new int*[m];
        for ( i=0; i < m; i++)
                *(mass+i)=new int[n];
 
        for ( i=0;i<m;i++)
                for(j=0; j<n;j++)
                        *(*(mass+i)+j)=rand()%m*n;
 
        for (i=0;i<m;i++){
                for(j=0; j<n;j++)
                        cout << setw(5) <<*(*(mass+i)+j);
        cout<<endl;
        }
        cout << endl << "Enter a number of col. to delete: ";
        cin >> k;
 
        int **mass_new=new int*[m];
        for ( i=0; i < m; i++)
                *(mass_new+i)=new int[n-1];
 
 
 
                        for ( i=0;i<m;i++)
                                for( j=0,jn=0; j<n-1;j++,jn++)
                                {
                                        if(jn==k)
                                                jn++;
                                        *(*(mass_new+i)+j)=*(*(mass+i)+jn);
                                }
 
                cout << endl;
                for (i=0;i<m;i++){
                for(j=0; j<n-1;j++)
                        cout << setw(5) <<*(*(mass_new+i)+j);
                cout << endl;
                }
                _getch();
                delete [] mass;
                delete [] mass_new;
               return 0;
}
pravil'no da ?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.11.2011, 10:40     Удалить столбец матрицы с номером K.
Посмотрите здесь:

Дана матрица размера M × N и целое число K (1 ≤ K ≤ N). Удалить столбец матрицы с номером K. C++
Дана квадратная матрица порядка m. Преобразовать матрицу по правилу: строку с номером сделать столбцом с номером n, а столбец с номером n - строкой с C++
C++ Удалить столбец матрицы с номером K.
После столбца матрицы с номером K вставить столбец из единиц C++
После столбца матрицы с номером K вставить столбец из единиц C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nursik77
 Аватар для Nursik77
273 / 233 / 21
Регистрация: 05.04.2011
Сообщений: 645
13.11.2011, 12:20     Удалить столбец матрицы с номером K. #2
В Си:
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
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
int main() {
    
 srand(time(NULL));
 int n = 5, m = 6, matrix[n][m];
 int i, j , k;
printf(" Ishodnaya matrica:");
 printf("\n\n");
 for(i = 0; i < n; i++)
  {
   for(j = 0; j < m; j++)
    {
     matrix[i][j] = rand()%50;
     printf(" %4i", matrix[i][j]);
    }
   printf("\n\n");
  }
 
/*------------удаляем k-й столбец-----------*/
 
printf("\nVvedite nomer stolbca: ");
scanf("%d", &k);
 for(j = k; j < m-k; j++)
  
   for(i = 0; i < n; i++)
    
         matrix[i][j] = matrix[i][j+1];
         m--;
  
/*------------------------------------------*/
printf("\n Matrica bez k-ogo stolbca:");
 printf("\n\n");
  for(i = 0; i < n; i++)
  {
   for(j = 0; j < m; j++)
    {
     printf(" %4i", matrix[i][j]);
    }
   printf("\n\n");
  }
system("pause");
return 0;
}
Добавлено через 19 минут
Ээм, извиняюсь, в 26-ой строчке:
C
1
for(j = k; j < m-k; j++)
будет
C
1
... j < m-1...
м -1, а не м-к. Исправтье.
Lifehouse
0 / 0 / 0
Регистрация: 12.11.2011
Сообщений: 58
13.11.2011, 12:26  [ТС]     Удалить столбец матрицы с номером K. #3
ok spasibo

Добавлено через 3 минуты
mojete pozhalusita posmotret' etu zadachu
Дано целое число K и набор ненулевых целых чисел; признак его за-вершения — число 0. Вывести номер последнего числа в наборе, больше-го K. Если таких чисел нет, то вывести 0.
ya ee sdelal no u menya ne pravil'no
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream.h>
void main ()
{   int k,i;
    int a[10];
    cout<<"Vvedite kolichestvo chisel v massive"<<endl;
    cin>>k;
    for (i=0; i<k; i++)
{
    cout<<"a["<<i<<"]=";
    cin>>a[i];
}
    for (i=0; i<k; i++)
{
    if (k<a[i])
    cout<<"a[i]="<<a[i]<<endl;
}
    for (i=0; i<k; i++)
{
    if (k>a[i])
    k=a[0];
    cout<<k<<endl;
}
}
Nursik77
 Аватар для Nursik77
273 / 233 / 21
Регистрация: 05.04.2011
Сообщений: 645
13.11.2011, 12:58     Удалить столбец матрицы с номером K. #4
Вам же тут ее решали: Дано целое число K и набор ненулевых целых чисел
Yandex
Объявления
13.11.2011, 12:58     Удалить столбец матрицы с номером K.
Ответ Создать тему
Опции темы

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