Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.03.2013, 21:56   #11
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,431
По умолчанию

Sciv, для Вас еще не все потеряно, ведь код rrrFer'а на С++
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 26.03.2013, 04:59   #12
zxzxz
Пользователь
 
Регистрация: 15.03.2013
Сообщений: 21
По умолчанию

Код:
#include "stdafx.h"
#include <iostream>
#include <fstream>

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;
 int i, j, t;
 char ch;
 std::ifstream ifst;
 char fname[255];

 std::printf ("filename: ");
 scanf_s ("%d", &fname);
 ifst.open(fname);

 if (0 == ifst) {
  std::printf ("can't open file\n");
  return -1;
}

 a = new int*[n];
 for (int i = 0; i < n; ++i)
  a[i] = new int[m];

 for (int i = 0; i < n; ++i) 
  for (int j = 0; j < m; ++j)
    ifst >> a[i][j];
 ifst.close();

 while (true) {
  std::printf ("\t1 - out arr\n\t2 - out sum\n\t3 - exit\n: ");
  scanf_s ("%d", &ch);

    if ('3' == ch)
      break;

    switch (ch) {
       case '1': printarray(a, n, m); break;
       case '2': printsum(a, n, m); break;
       default: std::printf ("input error");
      }
}

 for (int i = 0; i < n; ++i)
   delete []a[i];
 delete []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) 
    std::printf ("a[i][j]");
   std::printf ("std::endl");

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];
  std::printf ("sum: ");
}
}
}
выдает ошибку,не знаю как переделать в си чтобы работало

Последний раз редактировалось zxzxz; 26.03.2013 в 11:18.
zxzxz вне форума Ответить с цитированием
Старый 26.03.2013, 17:57   #13
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Цитата:
выдает ошибку,не знаю как переделать в си чтобы работало
Наверное, надо исправить строчки.
Abstraction вне форума Ответить с цитированием
Старый 26.03.2013, 20:21   #14
zxzxz
Пользователь
 
Регистрация: 15.03.2013
Сообщений: 21
По умолчанию

а какие строчки?
zxzxz вне форума Ответить с цитированием
Старый 26.03.2013, 20:25   #15
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
а какие строчки?
Наверно те, на которые ругается компилятор
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 26.03.2013, 20:35   #16
zxzxz
Пользователь
 
Регистрация: 15.03.2013
Сообщений: 21
По умолчанию

я как смогла переделала...не знаю,что еще не так

Последний раз редактировалось zxzxz; 26.03.2013 в 21:09.
zxzxz вне форума Ответить с цитированием
Старый 26.03.2013, 23:16   #17
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,431
По умолчанию

Не проверял:
Код:
#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;
  int i, j, t;
  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 = calloc(n, sizeof(a[0]));
  for (int i = 0; i < n; ++i)
    a[i] = 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: ");
    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);
}
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 26.03.2013, 23:16   #18
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Цитата:
а какие строчки?
а какую ошибку?
Abstraction вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Из паскаля в C++ Miles Общие вопросы C/C++ 1 22.05.2012 09:50
Из паскаля в С++ Slake Visual C++ 0 25.12.2011 14:35
Из паскаля в С++ Defender42 Помощь студентам 9 05.04.2011 16:37
С Паскаля на Си++ Svetlanka_ya Помощь студентам 0 16.05.2010 12:17
С паскаля на c++ Sparky Помощь студентам 1 09.03.2010 16:56