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

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

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

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

26.07.2009, 14:35. Просмотров 455. Ответов 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++
Проверить: Можно ли коробку размером a x b x c упаковать в посылку размером r x s x t? «Углом» укладывать нельзя.. Углом, это как?! И...

и еще одна задача на последовательности - C++
Вводится последовательность вещественных чисел, оканчивающаяся нулём, и состоящая более чем из одного ненулевого элемента. Определить,...

Еще одна задача на класс - C++
Напишите класс, описывающий вектор в пространстве. Перегрузите для него операции: &quot;+&quot; - для сложения векторов, &quot;-&quot; - для вычитания, &quot;*&quot; -...

2 задачи на С ++ и одна задача на С++ на oснoве MFC - 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
Эксперт С++
8286 / 3505 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
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
Огромнейшее спасибо!!!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.07.2009, 17:30
Привет! Вот еще темы с ответами:

не могу сделать так чтоб я сам вводил матрицы) задача умножения матрицы на вектор - C++
Всем привет. вобщем задача моя такова , что я задал готовое количество элементов в матрицу и в вектор, а программа умножает ее. сами задаем...

Задача на матрицы - C++
Требуется вывести матрицу(пользователь вводит кол-во строк, столбцов, потом поэлементно вводит матрицу). Далее найти минимальный элемент в...

Задача на с++ на матрицы - C++
Заполнить квадратную таблицу размером n*n последовательными целыми числами от 1 до n2, расположенными по спирали, начиная с левого верхнего...

Задача на матрицы - C++
Вычислить суммы элементов строк квадратной матрицы и сформировать из этих сумм вектор. Умножить исходную матрицу на этот вектор- столбец и...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
26.07.2009, 17:30
Ответ Создать тему
Опции темы

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