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

Найти ошибку в коде - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Матрица A(x,y). Найти сумму элементов матрицы находящихся под побочной диагонали http://www.cyberforum.ru/cpp-beginners/thread819755.html
на матрице А(х,у) найти сумму элементов матрицы находящихся под побочной диагонали
C++ Как можно сделать что бы в консольном окне можно было вызвать контекстное меню как в win cmd? Если вызвать cmd в windows то в нем можно вызывать контекстное меню и совершать различные полезные действия (копирование/вставка). А те консольные окна, которые создаются при запуске моих программа написанных на C++ не поддерживают контекстное меню. Подскажите кто знает как можно сделать так что бы консольном окне можно было вызвать контекстное меню как в win cmd? http://www.cyberforum.ru/cpp-beginners/thread819751.html
Массив из 20 целых чисел. Подсчитать количество четных чисел C++
вот такая задача: в массиве а из 20 целых чисел. подсчитать количество четных чисел
C++ В массиве Н(16) подсчитать количество отрицательных элементов и вывести их порядковые номера
помогите пожалуйств решить задачу В массиве Н(16) подсчитать количество отрицательных элементов и вывести их порядковые номера
C++ функции, указатели, пожалуйста, посоветуйте, как исправить http://www.cyberforum.ru/cpp-beginners/thread819741.html
Ввести 2 массива из N неотрицательных чисел разной размерности. Считать N≤100. Конец ввода элементов индицирует ввод отрицательного числа. Преобразовать каждый из массивов, умножив его на первое четное число в массиве. Для каждого массива в одной функции найти наибольший элемент массива, а так же его индекс. Вывести преобразованные массивы и результаты на экран общей функцией вывода. ...
C++ функции, указатели Ввести 2 массива из N неотрицательных чисел разной размерности. Считать N≤100. Конец ввода элементов индицирует ввод отрицательного числа. Преобразовать каждый из массивов, умножив его на первое четное число в массиве. Для каждого массива в одной функции найти наибольший элемент массива, а так же его индекс. Вывести преобразованные массивы и результаты на экран общей функцией вывода. ... подробнее

Показать сообщение отдельно
anmartex
...
 Аватар для anmartex
1700 / 1193 / 494
Регистрация: 12.02.2013
Сообщений: 1,978
27.03.2013, 06:53     Найти ошибку в коде
А так?:
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
#include <stdio.h>
#include <stdlib.h>
 
void printarray(int **a, const int n, const int m);
void printsum(int **a, const int n, const int m);
 
int main() {
  const int n = 3, m = 5;
  int **a;
  char ch;
  FILE *f;
  char fname[255];
 
  printf("filename: ");
  scanf("%s", fname);
  f = fopen(fname, "r");
 
  if (!f) {
    printf("can't open file\n");
    return -1;
  }
 
  a = (int**)calloc(n, sizeof(a[0]));
  for (int i = 0; i < n; ++i)
    a[i] = (int*)calloc(m, sizeof(a[i][0]));
 
  for (int i = 0; i < n; ++i)
    for (int j = 0; j < m; ++j)
      fscanf(f, "%d", &a[i][j]);
  fclose(f);
 
  while (1) {
    printf("\t1 - out arr\n\t2 - out sum\n\t3 - exit\n: ");
    fflush(stdin);
    scanf("%c", &ch);
 
    if ('3' == ch)
      break;
 
    switch (ch) {
      case '1': printarray(a, n, m); break;
      case '2': printsum(a, n, m); break;
      default: printf("input error\n");
    }
  }
 
  for (int i = 0; i < n; ++i)
    free(a[i]);
  free(a);
}
 
void printarray(int **a, const int n, const int m) {
  for (int i = 0; i < n; ++i) {
    for (int j = 0; j < m; ++j)
      printf("%d ", a[i][j]);
    printf("\n");
  }
}
 
void printsum(int **a, const int n, const int m) {
  int sum = 0;
  for (int i = 0; i < n; ++i)
    for (int j = 0; j < m; ++j)
      sum += a[i][j];
  printf("sum: %d\n", sum);
}
 
Текущее время: 12:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru