Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по программированию на C/С++

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

TargeTSan

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору


Код:
 
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
// predicate which determines if specified integer array has nonzero elements
bool has_nonzero(size_t size, int* row)
{
  for (int* end = row + size; row < end; ++row)
    if (*row)
      return true;
  return false;
}
// evaluate sum of a row
int sum(size_t size, int* row)
{
  int s = 0;
  for (int* end = row + size; row < end; ++row)
    s += *row;
  return s;
}
 
int main(int argc, char** argv)
{
  int rows, columns;
  // read matrix dimensions
  if (argc < 3)
  {
    printf("Usage: <app> <rows> <columns>\n");
    return 0;
  }
  sscanf(argv[1], "%d", &rows);
  sscanf(argv[2], "%d", &columns);
  // random seed
  srand(time(0));
  // create matrix and init it
  int i;
  printf("Creating matrix\n");
  int** matrix = new int*[rows];
  if (!matrix)
    return 1;
  printf("Matrix:\n");
  for (i = 0; i < rows; ++i)
  {
    matrix[i] = new int[columns];
    if (!matrix[i])
      return 1;
    int j;
    for (j = 0; j < columns; ++j)
    {
      matrix[i][j] = (rand() % 10) - 4;
      matrix[i][j] = matrix[i][j] <= 0 ? 0 : matrix[i][j] - 3;
      printf("%d ", matrix[i][j]);
    }
    printf("\n");
  }
  // make sums
  printf("Sums (per row):\n");
  fflush(stdin);
  int **end = matrix + rows;
  for (int** row = matrix; row < end; ++row)
    if (has_nonzero(columns, *row))
      printf("%d: %d\n", row - matrix, sum(columns, *row));
   
  //perform cleanup
  for (i = 0; i < rows; i++)
    delete[] matrix[i];
  delete[] matrix;
   
  return 0;
}
 


Всего записей: 21 | Зарегистр. 12-10-2008 | Отправлено: 18:11 12-11-2008 | Исправлено: TargeTSan, 19:01 12-11-2008
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по программированию на C/С++


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru