Top.Mail.Ru
Ответы
Аватар пользователя
8лет
Изменено
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+4

Матрицы, массивы в языке С. (С помощью вспомогательных функций)

Народ, хелп! Нужно задать 3 матрицы, а потом возвести каждую в квадрат и вывести на экран. Функцию для произведения написала, но, видимо, в выводе в функции (или нет) ошибка. После нескольких часов раздумий так и не поняла, в чём дело. Скрины из CodeBlocks прилагаю.
Код программы:
#include /* для ввода вывода си++*/
#include /*Библиотека функция стандартного ввода и вывода*/
#include /*Библиотека для функции rand*/
#include /*Библиотека для ввода и вывода потока C++*/
#define n 10 /*для констант */

using namespace std;

void vvod (int a, float X[n][n]) /*ввод матрицы*/
{
int i,j; /*Создаем переменую типа int*/
for (i=0;i<a;i++) /* Цикл для заполнения матрицы*/
{
printf ("\n");
for (j=0;j<a;j++)
{
X[i][j]=rand()%50/1.5-rand()%50/1.75;
printf("%.8f ",X[i][j]); /*вывод на экран */
}

}
}

void umn (float A[n][n], float B[n][n], float C[n][n])
{
int i,j,k;
for(i = 0; i < n; i++)
{
printf ("\n");
for(j = 0; j < n; j++)
{
C[i][j] = 0;
for(k = 0; k < n; k++)
C[i][j] += A[i][k]*B[k][j];
};
printf("%f ",C[i][j]);
};
}

int main ()
{
int k; //целое число
float A[n][n],B[n][n],C[n][n],A1[n][n],B1[n][n],C1[n][n],A2[n][n],B2[n][n],C2[n][n],Z[n][n],K[n][n],M[n][n];
printf("vvedite k:");//вывод на экран "vvedite k:"
scanf("%i",&k);//ввод с клавиатуры числа к

printf("A:\n");
vvod(k,A);//ввод матрицы по функции vvod
printf("\n\nB:\n");
vvod(k,B);//ввод матрицы по функции vvod
printf("\n\nC:\n");
vvod(k,C);//ввод матрицы по функции vvod
printf("\nA^2: ");
umn(A,A,A1);
printf("\nB^2: ");
umn(B,B,B1);
printf("\nC^2: ");
umn(C,C,C1);

return 0;
}

Дополнен
По дате
По рейтингу
Аватар пользователя
Мыслитель
8лет

Тебе наверное надо массивы в функции передавать по указателю.
В твоем примере ...у тя наверное нули выводит?

Аватар пользователя
Искусственный Интеллект
8лет

Код на pastebin.com или ideone.com - тут отступы убиваются и вообще все иногда коверкается.
Покажи, что не так (или почему ты считаешь, что что-то не так).
И почему в функцию vvod передается размер, а в umn - нет?