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

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

Войти
Регистрация
Восстановить пароль
 
dron-k
1 / 1 / 0
Регистрация: 24.03.2009
Сообщений: 24
#1

матрицы на с (одна задача) - C++

26.07.2009, 14:35. Просмотров 446. Ответов 5
Метки нет (Все метки)

Уважаемые форумчане, подскажите пожалуйста, где у меня ошибка?
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
/*
Элементы каждой строки прямоугольной  матрицы  заменить  их дополнениями до максимального элемента 
 этой  же  строки. Определить, насколько при этом изменится общая сумма элементов матрицы.
 */
 #include <stdio.h>
 #include <conio.h>
 #include <stdlib.h>
 #include <math.h>
 const char PressKey[26]="Нажмите клавишу ВВОД";
 int x[10][10];   //    матрица
 int i,j;         //    параметры циклов 
 int xlmax;       //    максимальный элемент в строке
 int n,m;         //    размеры матрицы 
 char Reply;      //    Символ ответа на запрос программы 
 char IndPrinter; //    Индикатор использования принтера 
 float MS_start,MS_end;   //   суммы элементов матриц
 File *F;   //Исходный файл
 //----------------------------------------------
 void WaitEnter()
 // Задержка выполнения программы до тех пор,
 // пока не будет нажата клавиша Enter
 {
       while (getch()!=13);
 } //WaitEnter
 //-----------------------------------------------
 void PrintMatrix (int *x, int n, int m)
 // Процедура выводит содержимое матрицы на экран
{
 int i,j=0;
  clrscr();
  for(i=0;i<n;i++)
    {
     for(j=0;j<m,j++)
       printf("%8d\n", X[i][j]);
    }   
  printf("\n")  
} //PrintMatrix  
//----------------------------------------------- 
float GetMatrixSum (int *x, int n, int m)
// Функция считает сумму всех єлементов матриці
{
 int i,j=0;
 float r=0;
 for(i=0;i<n;i++)
   for(j=0;j<n;j++)
     r=r+X[i][j];
 GetMatrixSum=r;
} // GetMatrixSum
//------------------------------------------------
void main()
{
//Установка соответствия между внутренними и внешними файлами
  if((F=fopen("4x.dat","rt"))==NULL) //NULL-Указатель ни на что не указывающий
    {
      printf("Исходный файл не найден\n Для выхода в DOS нажмите "
        "любую клавишу");   // Строки заносятся в двойные ковычки,
        getch();            // а одиночные символы - в одинарные
        exit(0);
    }   
 // запрос об использовании принтера
  clrscr();
  IndPrinter=0;
  printf("Будет ли использован принтер" (Да,Нет)?");
  Reply=getch()
  if((Reply=='Д')||(Reply=='д')||(Reply=='L')||(Reply=='l'))
    IndPrinter=1;  
  MS_start=GetMatrixSum(X,n,m);
  //вывод матрицы на экран
  printf("n=%i,m=%i,сумма всех элементов=%f,X=",n,m,MS_start);
  printMatrix(X,n,m);
  //в каждой строке
  for(i=0,i<n,n++)
   {   
     //найдём значение максимального элемента
     xlmax=X[i][1];
      for(j=2,j<m,m++)
        if X[i][j] > xlmax
          xlmax=x[i][j];        
          //заменим каждый элемент на его дополнение до максимального
          for(j=0,j<m,m++)
            X[i][j]=xlmax-x[i][j]
    }       
    MS_end=GetMatrixSum(X,n,m);
    printf("n=%i,m=%i,сумма всех элементов=%f,X=",n,m,MS_end);
    PrintMatrix(X,n,m);
    printf("изменение суммы элементов матрицы =%f",MS_end-MS_start);
}
Если надо, то моя ася:559804060
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.07.2009, 14:35     матрицы на с (одна задача)
Посмотрите здесь:

C++ Если в строке или столбце матрицы только одна единица, то заменить ее нулем
еще одна задача на строковый тип C++
C++ 2 задачи на С ++ и одна задача на С++ на oснoве MFC
C++ И еще одна задача по С++...
Задача на формирование матрицы C++
Задача на матрицы C++
C++ Задача на с++ на матрицы
задача про матрицы C++
и еще одна задача на последовательности C++
Элементарная задача на матрицы C++
Еще одна задача на класс C++
Задача на матрицы C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zim22
depict1
276 / 141 / 2
Регистрация: 11.07.2009
Сообщений: 606
26.07.2009, 14:50     матрицы на с (одна задача) #2
Цитата Сообщение от dron-k Посмотреть сообщение
подскажите пожалуйста, где у меня ошибка?
здесь:
File *F; //Исходный файл
dron-k
1 / 1 / 0
Регистрация: 24.03.2009
Сообщений: 24
26.07.2009, 14:57  [ТС]     матрицы на с (одна задача) #3
оно должно быть FILE *F?
zim22
depict1
276 / 141 / 2
Регистрация: 11.07.2009
Сообщений: 606
26.07.2009, 15:02     матрицы на с (одна задача) #4
Цитата Сообщение от dron-k Посмотреть сообщение
оно должно быть FILE *F?
да
M128K145
Эксперт С++
8282 / 3501 / 143
Регистрация: 03.07.2009
Сообщений: 10,707
26.07.2009, 15:16     матрицы на с (одна задача) #5
Вот исправил все синтаксические ошибки. Смысловые ошибки в коде не искал и не трогал

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
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
 
const char PressKey[26]="Нажмите клавишу ВВОД";
int x[10][10]; 
int i,j; 
int xlmax;
int n,m; 
char Reply; 
char IndPrinter; 
float MS_start,MS_end; 
FILE *F(NULL); //------ FILE пишется большими буквами
//----------------------------------------------
void WaitEnter()
{
    while (_getch()!=13);
}
//-----------------------------------------------
void PrintMatrix (int x[10][10], int n, int m)
{
    int i,j=0;
    //clrscr();
    for(i=0;i<n;i++)
    {
        for(j=0;j<m;j++)    //---------------- здесь точка с запятой должна быть
            printf("%8d\n", x[i][j]);   //-------------- x маленькая должна быть
    } 
    printf("\n");   //--------------- точку с запятой пропустил
}
//----------------------------------------------- 
float GetMatrixSum (int x[10][10], int n, int m)
{
    int i,j=0;
    float r=0;
    for(i=0;i<n;i++)
        for(j=0;j<n;j++)
            r=r+x[i][j];//--------------- тоже x маленькая
    //GetMatrixSum=r; //------- нету такой записи в C. 
    return r; //------- а вот такая есть
}
//------------------------------------------------
void main()
{
    if(((F=fopen("4x.dat","rt")))==NULL)
    {
        printf("Исходный файл не найден\n Для выхода в DOS нажмите "
            "любую клавишу");
        _getch();
        exit(0);
    } 
    //clrscr();
    IndPrinter=0;
    printf("Будет ли использован принтер (Да,Нет)?"); //-------- с кавычками перемудрил
        Reply=_getch(); // ------ пропустил точку с запятой
        if((Reply=='Д')||(Reply=='д')||(Reply=='L')||(Reply=='l'))
            IndPrinter=1; 
    MS_start=GetMatrixSum(x,n,m);
 
    printf("n=%i,m=%i,сумма всех элементов=%f,X=",n,m,MS_start);
    PrintMatrix(x,n,m);
    for(i=0;i<n;n++)
    { 
        xlmax=x[i][1];
        for(j=2;j<m;m++)//------ в форах везже должны быть точки с запятой
            if (x[i][j] > xlmax)
                xlmax=x[i][j]; 
        for(j=0;j<m;m++)//------ в форах везже должны быть точки с запятой
            x[i][j]=xlmax-x[i][j];
    } 
    MS_end=GetMatrixSum(x,n,m);
    printf("n=%i,m=%i,сумма всех элементов=%f,X=",n,m,MS_end);
    PrintMatrix(x,n,m);
    printf("изменение суммы элементов матрицы =%f",MS_end-MS_start);
}

В коде соблюдай одинаковые имена. Если назвал матрицу x, то по имени X к ней обратится невозможно
dron-k
1 / 1 / 0
Регистрация: 24.03.2009
Сообщений: 24
26.07.2009, 17:30  [ТС]     матрицы на с (одна задача) #6
Огромнейшее спасибо!!!
Yandex
Объявления
26.07.2009, 17:30     матрицы на с (одна задача)
Ответ Создать тему
Опции темы

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