Работа с матрицами в TurboC
Создать программу работы с матрицами.Заполнение матррицы А и B: из фала или задание с клавиатуры. Нахождение А+В, (А+В)^-1, (А+В)*(А+В)^-1.
А в чем конкретно проблемы?
Если допустим в алгоритме запутался тогда:
1) напиши для начала решения мат. задание на листике (пости сюда)
2) пытаешься написать код (тоже постишь сюда)
тогда посмотрим где ошибся
А в чем конкретно проблемы?
Если допустим в алгоритме запутался тогда:
1) напиши для начала решения мат. задание на листике (пости сюда)
2) пытаешься написать код (тоже постишь сюда)
тогда посмотрим где ошибся
Мы недавно начали учить Си, но и за майских праздников у нас пропадает много пар. Поэтому я решил начать писать курсовую заранее.
Проблемы с которыми я столкнулся
1.Я не могу сделать так чтобы массив выводился на экран как матрица.
2.Как сделать общий цикл ввода массива А и В
3.Как прибавить к первому элементу массива А первый элемент массива В
Ну в общем я написал кое-что, посмотрите может че подскажете
#include <stdio.h>
#include <conio.h>
#include <string.h>
void main (void)
{
int k,i,i1,ic,jc,sc,stc,j1,j,k1,s,st,s1,st1,m[10][10],m1[10][10],mc[10][10];
clrscr();
printf("Vvedite M matrice A\n");scanf("%d",&s);
printf("Vedite N v matrice A\n");scanf("%d",&st);
printf("Vedite M v matrice B\n");scanf("%d",&s1);
printf("Vedite N v matrice B\n");scanf("%d",&st1);
if(s<=s1)
{
sc=s;
}
if(st<=st1)
{
stc=st;
}
if(s>=s1)
{
sc=s;
}
if(st>=st1)
{
stc=st;
}
for (i=0; i < s; i++)
for (j=0; j < st; j++)
{
printf("A:");scanf("%d",&m[j]);
}
for(i1=0;i1<s1;i1++)
for(j1=0;j1<s;j1++)
{
printf("B:");scanf("%d",&m1[i1][j1]);
}
getch();
}
2.Как сделать общий цикл ввода массива А и В
Как насчет того, что бы использовать функцию, которую можно запустить дважды:
1)для массива А
2)для массива B
как параметры посылаешь массив, и можно строку для сообщения пользователю:
#define ROW 3
#define COL 3
void inputmatrix(int [][COL], char []);
void main(void)
{
.....
inputmatrix(A,"Enter elements of matrix A:\n");
inputmatrix(B,"Enter elements of matrix B:\n");
....
}
void inputmatrix(int mat[][COL], char mes[])
{
/* 1 - printing mes*/
/* code for input matrix */
}
1.Я не могу сделать так чтобы массив выводился на экран как матрица.
Точно также, как в любом другом языке (ну асм пусть будет исключением :)) :
после распечатывания каждой строки матрицы (массива) нужно распечатать '\n' :
putchar('\n');
....
при расспечатывании елемента массива удобно пользоваться маштабированием:
или
3.Как прибавить к первому элементу массива А первый элемент массива В
Также как и в математике, последовательно складывашь каждый элемент
матрицы А(сохранненой в массиве) с каждым элементо массива B, а результат сохраняешь в 3 массиве С например.
Достаточно одного цикла состоящего из 2-ух for-ов.
C[..][..] = A[..][..] + B[..][..];
...
printf("Vedite N v matrice A\n");scanf("%d",&st);
printf("Vedite M v matrice B\n");scanf("%d",&s1);
printf("Vedite N v matrice B\n");scanf("%d",&st1);
if(s<=s1)
{
sc=s;
}
if(st<=st1)
{
stc=st;
}
if(s>=s1)
{
sc=s;
}
if(st>=st1)
{
stc=st;
}
это зачем ? насколько я вижу у тебя массивы не деномические.
И допустим ты берешь максимальный размер массива (при объявлении), а потом от пользователя получаешь желаемый размер, но в любом случае
N_A == N_B && M_A == M_B
иначе как ты их складывать собираешься?
это зачем ? насколько я вижу у тебя массивы не деномические.
И допустим ты берешь максимальный размер массива (при объявлении), а потом от пользователя получаешь желаемый размер, но в любом случае
иначе как ты их складывать собираешься?
т.е. хочу сказать что достаточно один раз получить значение N, M
{
sc=s;
}
if(st<=st1)
{
stc=st;
}
if(s>=s1)
{
sc=s;
}
if(st>=st1)
{
stc=st;
}
допустим тебе нужен этот код, неужели нельзя упростить его блоком if ... else
{
...
}
else
{
...
}
читай книги
Большое спасибо, попробую разобраться.
#define ROW 3
#define COL 3
void inputmatrix(int [][COL], char []);
void main(void)
{
.....
inputmatrix(A,"Enter elements of matrix A:\n");
inputmatrix(B,"Enter elements of matrix B:\n");
....
}
void inputmatrix(int [][COL], char mes[])
{
/* 1 - printing mes*/
/* code for input matrix */
}
, и если не трудно объсните как использовать функции,с примером кода. Заранее большое спасибо.
Для чего в C++ исполбзуется #define, а также в коде..........
#define ROW 3
#define COL 3
void inputmatrix(int [][COL], char []);
void main(void)
{
.....
inputmatrix(A,"Enter elements of matrix A:\n");
inputmatrix(B,"Enter elements of matrix B:\n");
....
}
void inputmatrix(int [][COL], char mes[])
{
/* 1 - printing mes*/
/* code for input matrix */
}
, и если не трудно объсните как использовать функции,с примером кода. Заранее большое спасибо.
насчет #define - книгу в руки
[COLOR=red]...[/COLOR] - это говорит о том, что я не написала полную программу, надо еще чучуть подумать, и дописать что надо. Например:
говорит о том, что ты должен организовать цикл, пройтись по элементам массива А,B а результаты сохранить в массиве С,
а вместо .. подставить индексы. Короче говоря надо учиться:
for(j = 0; j < M; j++)
C[j] = A[j] + B[j];
p.s. что, книгу в руки взять лень?
и если не трудно объсните как использовать функции,с примером кода.
Exampele
внизу пример, в данном случае(коде) по использованию функции, нету разницы между С и С++