С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Dispa
1 / 1 / 0
Регистрация: 13.06.2011
Сообщений: 16
#1

Двумерный массив. Программу написать используя указатели и строковые функции. - C++

15.11.2011, 21:35. Просмотров 585. Ответов 3
Метки нет (Все метки)

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
#include <iostream.h>
int num (int **a, const int n, const int m);
void sum (int **b, const int k, const int r);
int main () {
int i, j, str, stb;
cout<<"Vvedite chislo strok i stolbzov matrizi\n";
cin>>str>>stb;
int **mas=new int*[str];
for (i=0; i<str; i++)
for (j=0; j<stb; j++)
cin>>*(*(mas+i)+j);
cout<< "Nomer stolbza" << num (mas, str, stb);
//sum (**b, k, r);
//cout<<"Preobraz massiv: \n"<<endl;
//for(i=0; i<str; i++) {
//for (j=0; j<stb; j++) {
// cout << endl (Эта запись нужна,чтоб вывести в виде таблицы, красиво массив, куда ее поставить,я не знаю()
//cout<< *(*(mas+i)+j) << " ";
//}}
return 0;
}
int num (int **a, const int n, const int m) {
int ii, jj, q=0;
for (ii=0; ii<n; ii++)
for (jj=0; jj<m; jj++)
if (a[ii][q=jj]==0)
return (q+1);
}
//void sum (int **b, const int k, const int r) {
//   int pp, ff, e, sum=0, temp;
//   int aa[pp]={0};
//   for (pp=0; pp<k; pp++) {
//
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.11.2011, 21:35
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Двумерный массив. Программу написать используя указатели и строковые функции. (C++):

Написать программу "Военкомат" используя указатели, функции и динамическую память - C++
Написать программу военкомат используя указатели, функции и динамическую память

Написать программу копирования строки T в строку S, используя указатели. - C++
Написать программу копирования строки T в строку S, используя указатели. В головной функции напечатать строку T.

Написать код используя массивы, указатели, виртуальные функции, наследование, классы и т.д - C++
Короче нужно сделать код, программу которая будет использовать массивы, указатели, виртуальные функции, наследование, классы, конструкторы,...

Написать программу умножения ряда нечётных натуральных чисел от 1 до 21, используя указатели - C++
Добрый день! Есть задача, умножить числа 1 * 3 * 5 * 7 * ...* 21, используя циклы int main() { long long x = 1, dob = 1; ...

Составить программу обработки двухмерного массива используя указатели и функции... - C++
Составить программу обработки двухмерного массива используя указатели и функции, выполнив каждый пункт задания в виде функции. Все...

Написать программу используя функции - C++
Используя имя массива как указатель, и применяя адресную арифметику выполнить задание: 17. Дан одномерный массив, состоящий из N...

3
Svinina
5 / 5 / 0
Регистрация: 28.11.2010
Сообщений: 81
15.11.2011, 21:44 #2
А что требуется от нас то?=)
0
Dispa
1 / 1 / 0
Регистрация: 13.06.2011
Сообщений: 16
15.11.2011, 22:58  [ТС] #3
Цитата Сообщение от Svinina Посмотреть сообщение
А что требуется от нас то?=)
Я случайно сохранила сообщение не полностью, сейчас полностью напишу)

Дана целочисленная прямоугольная матрица. Определить номер первого из столбцов, содерж. хотя бы один нулевой элемент.
Характеристикой строки целочисленной матрицы назовем сумму ее отрицательных четных элементов. Переставляя строки заданной матрицы, раложить их в соотвествии с убыванием характеристик. Нужно все сделать с помощью указателей и строковых функций.

Первую часть программы я вроде худо ли бедно сделала. Во второй части вобще провал Как выводить двумерный массив с помощью функций, как сортировать строки, вобще верно ли алгоритм нахождения характеристик написала, их еще и вывести желательно в одномерном массиве. Свои потуги закомментила. Помогите, пожалуйста.
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
#include <iostream.h>
int num (int **a, const int n, const int m);
void sum (int **b, const int k, const int r);
int main () {
int i, j, str, stb;
cout<<"Vvedite chislo strok i stolbzov matrizi\n";
cin>>str>>stb;
int **mas=new int*[str];
for (i=0; i<str; i++)
for (j=0; j<stb; j++)
cin>>*(*(mas+i)+j);
cout<< "Nomer stolbza" << num (mas, str, stb);
//sum (**b, k, r);
//cout<<"Preobraz massiv: \n"<<endl;
//for(i=0; i<str; i++) {
//for (j=0; j<stb; j++) {
// cout << endl (Эта запись нужна,чтоб вывести в виде таблицы, красиво массив, куда ее поставить,я не знаю()
//cout<< *(*(mas+i)+j) << " ";
//}}
return 0;
}
int num (int **a, const int n, const int m) {
int ii, jj, q=0;
for (ii=0; ii<n; ii++)
for (jj=0; jj<m; jj++)
if (a[ii][q=jj]==0)
return (q+1);
}
//void sum (int **b, const int k, const int r) {
//   int pp, ff, e, sum=0, temp;
//   int aa[pp]={0};
//   for (pp=0; pp<k; pp++) {
//       for (ff=0; ff<r; ff++) {
//             if (e<0 && e%2==0)
//                sum+=e; }
// нужно как то вывести тут одномерный массив
// }
//int max=aa[0];
//for (pp=1;pp<n;pp++)
//if (aa[ff])<aa[ff+1])
//  for (pp=0; pp<n; pp++) {
//      for (ff=0; ff<m; ff++)
//           int temp=b[pp][ff+1];
//            b[pp][ff+1]=b[pp][ff];
//            b[pp][ff]=temp;
// }
// }
0
lemegeton
2925 / 1354 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
17.11.2011, 07:01 #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
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
typedef int Value;
typedef Value *Row;
typedef Row *Matrix;
 
 
int firstColumnWithZero(Matrix matrix, size_t height, size_t width) {
  int i, j;
  for (i = 0; i < height; ++i)
    for (j = 0; j < width; ++j)
      if (matrix[i][j] == 0)
        return j;
  return -1;
}
 
Value sumEvenNegatives(Row row, size_t width) {
  Value result = 0;
  int i;
  for (i = 0; i < width; ++i)
    if ((row[i] < 0) && (row[i] % 2 == 0))
      result += row[i];
  return result;
}
 
void quickSort(Matrix matrix, size_t height, size_t width,
  Value (*predicate)(Row, size_t)) {
  int i = 0, j = height;
  Row temp;
  Value pivot;
 
  pivot = predicate(matrix[height >> 1], width);
  do {
    while (predicate(matrix[i], width) > pivot) i++;
    while (pivot > predicate(matrix[j], width)) j--;
 
    if (i <= j) {
      temp = matrix[i];
      matrix[i] = matrix[j];
      matrix[j] = temp;
      i++; j--;
    }
  } while ( i<=j );
 
  if (j > 0) quickSort(matrix, j, width, predicate);
  if (height > i) quickSort(matrix + i, height - i, width, predicate);
}
 
void printMatrix(Matrix matrix, size_t height, size_t width,
  Value (*predicate)(Row, size_t)) {
  int i, j;
  for (i = 0; i < height; ++i) {
    printf("Row %3d | ", i);
    for (j = 0; j < width; ++j)
      printf("%4d", matrix[i][j]);
    printf(" | %5d\n", predicate(matrix[i], width));
  }
}
 
int main(int argc, char *argv[]) {
  srand(time(0));
  size_t width = 10;
  size_t height = 15;
  int i, j;
  Matrix matrix = (Matrix)malloc(sizeof(Row) * height);
  for (i = 0; i < height; ++i) {
    matrix[i] = (Row)malloc(sizeof(Value) * width);
    for(j = 0; j < width; ++j)
      matrix[i][j] = rand() % 101 - 50;
  }
  
  printMatrix(matrix, height, width, sumEvenNegatives);
  
  int columnWithZero = firstColumnWithZero(matrix, height, width);
  if (columnWithZero >= 0)
    printf("Number of first column with zero is %d.\n", columnWithZero);
  else
    printf("No zeroes in any column.\n");
 
  quickSort(matrix, height - 1, width, sumEvenNegatives);
 
  printf("\nSorted:\n");
  printMatrix(matrix, height, width, sumEvenNegatives);
  
  for (i = 0; i < height; ++i)
    free(matrix[i]);
  free(matrix);
  return 0;
}
0
17.11.2011, 07:01
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.11.2011, 07:01
Привет! Вот еще темы с ответами:

Используя функции сформировать с помощью генератора случайных чисел двумерный массив и вывести его на экран - C++
Используя функции сформировать с помощью генератора случайных чисел двумерный массив и вывести его на экран. код в С++, не могу...

Нужно написать программу с++ используя функции - C++
В той из них где главная диагональ содержит больше положительных элементов найти количество элементов, расположенных выше главной диагонали...

Написать программу, используя функции пользователя - C++
Вывести все пары простых чисел-близнецов на отрезке , используя функцию определения простоты числа. Буду очень благодарна.

Написать программу, в которой создается двумерный динамический массив - C++
Кто в курсе, как решить задачу на С++? Написать программу, в которой создается двумерный динамический массив. Количество строк и столбцов...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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