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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Скринсейвер http://www.cyberforum.ru/cpp-beginners/thread384751.html
У меня задание стоит такое: Сделать утилиту, котороя управляла бы скринсейвером. Вот в чем вопрос: если у меня же есть екзешники скринсейверов, как сделать утилиту,которая настраивала бы их роботу: 1) вкл 2) выкл 3) время через котрое нужно включиться Если есть идеи - жду ответа!
C++ Задача на С++ Добрый день! Прошу помощи в такой задаче: Пользователь вводит размер таблицы (sizeX sizeY) и начальную боковую ячейку (startX startY), с которой нужно начинать действия. Согласно этим условиям требуется заполнить данную таблицу по спирали (по часовой стрелке) начиная со стартовой ячейки. Каждая из ячеек таблицы должна быть заполнена. Вот примеры таких таблиц: таблица 7х5, начало startX=2,... http://www.cyberforum.ru/cpp-beginners/thread384720.html
C++ Дан одномерный массив. Получить из исходного массива матрицу K-го порядка.
Дан одномерный массив. Получить из исходного массива матрицу K-го порядка. Лишние элементы одномерного массива игнорируются. Если элементов не хватает, то оставшиеся элементы матрицы полагаются равным нулю. Запись в матрицу происходит по строкам.
Задача на строки C++
Очень нужно) заранее спасибо:) **При написании программ использовать нуль–терминированные строки и работать только с типом char . Длина каждой строки не превосходит 300 символов. Словом, входящим в состав строки, назовём непрерывную последовательность символов, ограниченную символами–разделителями, началом и концом строки. Символы, относящиеся к разделителям, определяет пользователь, если...
C++ помогите пожалуйста с решением http://www.cyberforum.ru/cpp-beginners/thread384709.html
Учитывая последовательность (N) круглых, квадратныч и фигурныч скобок. Узнайте, можно ли добавить цифры и арифметические операции, чтобы вы могли получить правильное арифметическое выражение. вход Первая строка содержит число в скобках - N (1 ≤ N ≤ 100 000). Вторая содержит последовательность N символов из множества () {}. выходной Отображает слово "Да", если вы можете получить...
C++ Дайте совет как вывести простые несократимые дроби в порядке возрастания. Надо вывести в порядке возрастания все простые несократимые дроби из интервала (0;1), знаменатели которых не превосходят заданного P<=9. Набрасал этот код, но если m > 4, то уже неверно. #include <iostream> int NOD(int a,int b) { while(a!=0 && b!=0) { подробнее

Показать сообщение отдельно
lemegeton
 Аватар для lemegeton
2915 / 1344 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
17.11.2011, 07:01     Двумерный массив. Программу написать используя указатели и строковые функции.
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;
}
 
Текущее время: 11:27. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru