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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.05.2013, 05:02   #1
Alexandr-
Пользователь
 
Регистрация: 04.03.2013
Сообщений: 79
По умолчанию Объясните, как работает программа

Объясните пожалуйста подробно, как работает программа (если поточнее, что делают функции). Заранее спасибо.
Код:
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <time.h>
 
int pos(int s, int row, int col)
{
    if (row > col) {
        int tmp = row;
        row = col;
        col = tmp;
    }
    return (col - row + (s + s - row + 1) * row / 2);
}
 
void
print_matrix1(int *a, int n)
{
    int i, j;
    for (i = 0; i < n; ++i) {
        for (j = 0; j < n; ++j) {
            printf("%d ", a[pos(n, i, j)]);
        }
        printf("\n");
   }
}
void
print_matrix2(int *a, int n)
{
    int i, j;
    for (i = 0; i < n; ++i) {
        for (j = 0; j < n; ++j) {
            printf("%d ", a[n * i + j]);
        }
        printf("\n");
    }
}
int main()
{ int count,i,k,j,n,*a,*b,**c;
    printf("vvedite razmer massivov");
    scanf("%d", &count);
     a = (int *)malloc(count * sizeof(int));
    b = (int *)malloc(count * sizeof(int));
 c = (int **)malloc(count * sizeof(int*));
    n = (sqrt(8 * count + 1) - 1) / 2;
 
    for (i = 0; i <count; i++){
printf("Vvedite ");printf("%i ",i);printf("element massiva\n"); 
scanf("%d",&a[i]);} printf("massiv 1\n");
    for (i = 0; i <count; i++){ printf("%3d",a[i]); }
printf("\n");
 
 for (i = 0; i <count; i++){
printf("Vvedite ");printf("%i ",i);printf("element massiva\n"); 
scanf("%d",&b[i]);} printf("massiv 2\n");
    for (i = 0; i <count; i++){ printf("%3d",b[i]); }
printf("\n");   
    for (i = 0; i < n; ++i) {
        for (j = 0; j < n; ++j) {
            int tmp = 0;
            for (k = 0; k < n; ++k) {
                tmp += a[pos(n, i, k)] * b[pos(n, k, j)];
            }
            c[n * i + j] = tmp;
        }
    }
    printf("A:\n");
    print_matrix1(a, n);
    printf("B:\n");
    print_matrix1(b, n);
    printf("C:\n");
    print_matrix2(c, n);
    free(a);
    free(b);
    free(c);
  getch();  return 0;
}
Alexandr- вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
объясните как работает программа vitaliy089 Помощь студентам 0 15.05.2012 21:35
Объясните, как работает программа grovail Общие вопросы C/C++ 1 24.12.2011 11:33
C++ объясните пжлста как работает ПРОГРАММА monkey_tree Помощь студентам 0 21.06.2011 01:48
Множества, объясните как работает программа ilyas22 Помощь студентам 4 06.06.2010 12:17