Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
geronik
0 / 0 / 0
Регистрация: 01.01.2012
Сообщений: 10
#1

рабочая программа. но нужно ее переписать так, чтобы она была наиболее общей. - C++

02.01.2012, 14:46. Просмотров 533. Ответов 2
Метки нет (Все метки)

Задана матрица смежности размерности N*M. С помощью процедуры и матрицы меньшей размерности найти медианы и записать в виде матрицы размерности N*M, где крайние элементы равны 0.
входные данные:
6
4
-17 3 -15 6 4 -9
2 14 1 5 -7 8
-7 -13 8 -9 -11 1
2 -3 -1 3 -6 3
выходные данные:
0 0 0 0 0 0
0 1 3 1 1 0
0 1 1 -1 1 0
0 0 0 0 0 0

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
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int sort(int **mas1,int Mx, int My, int i1 ,int j1)
{
    int p[9];
    int i,j,temp;
    for(i=0;i<Mx;i++)
    {
        for(j=0;j<My;j++)
        p[i*My+j]=mas1[i+i1][j+j1];
    }
    for (i=Mx*My;i>1;i--)
    {
        for (j=1;j<i;j++)
            if (p[j]<p[j-1])
            {
                temp=p[j];
                p[j]=p[j-1];
                p[j-1]=temp;
            }
    }
    return p[4];
}
 
int main(int argc, char *argv[])
{
    if (argc!=3) {exit (1);}
    int i,j,Nx,Ny;
    
    FILE *f1=fopen (argv[1],"r");
    fscanf (f1,"%d",&Ny);
    fscanf (f1,"%d",&Nx);
    int **mas1;
    int **mas2;
    mas1=new int*[Nx];
    for (i=0;i<Nx;i++)
    {   
        mas1[i]=new int[Ny];
        for (j=0;j<Ny;j++)
        fscanf(f1,"%d",&mas1[i][j]);
    }
    mas2=new int*[Nx];
    for (i=0;i<Nx;i++)
    {   
        mas2[i]=new int[Ny];        
    }
 
    int Mx=3,My=3;
 
    FILE *f2=fopen (argv[2],"w");
    
    for (i=0;i<=Nx-Mx;i++)
    {
        for (j=0;j<=Ny-My;j++)
        {
            mas2[i][j]=sort(mas1,Mx,My,i,j);
            fprintf(f2,"%d\t",mas2[i][j]);
        }
        fprintf (f2,"\n");
    }
 
for(i=0;i<Nx;i++)
    delete []mas1[i];
delete []mas1;
 
for(i=0;i<Nx;i++)
    delete []mas2[i];
delete []mas2;
 
fclose (f2);
printf ("\n File: out.txt");
return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.01.2012, 14:46
Здравствуйте! Я подобрал для вас темы с ответами на вопрос рабочая программа. но нужно ее переписать так, чтобы она была наиболее общей. (C++):

Модернизируйте функцию factorial так, чтобы она не была рекурсивной - C++
Пример программы: // Вычисляющей сумму, разность и факториал // двух чисел #include &lt;iostream.h&gt; class MyInt { int i; ...

Как объявить переменную так, чтобы она была видна в .h файле? - C++
День всем добрый! Допустим, есть у меня код в главном .cpp файле: #include &quot;Windows.h&quot; #include &quot;my.h&quot; using namespace...

Массив: Образовать новую последовательность чисел так, чтобы она тоже была неубывающей - C++
Помогиет реализовать программу на С++ или дайте советы по ее построению Даны две последовательности a1 ≤ a2 ≤ ... ≤ an и b1 ≤...

Программа работает только с одним разрешением экрана, как сделать чтобы она была универсальна - C++
Написал простенький кликер на с++, который в игре нажимает кнопочки от 1 до 9, сделал зависимости нажатия кнопочек от того что происходит...

Как сделать так, чтобы программа не компилилась, хотя синтаксически была бы правильной? - C++
Друзья! Дело в следующем, вот у меня есть функции X и Y. И вот мне не хотелось бы вызывать X прежде, чем будет вызвана Y. Но это всё в...

Готовая программа, нужно переделать ее чтобы она работала с УКАЗАТЕЛЯМИ - C++
Вычислить значение выражения тут Вычислить значение выражения (3a+4)/(a-в квадрате-5a-9) для а= 1,2,…100. Результат выполнения занести в...

2
soon
2542 / 1307 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
02.01.2012, 14:51 #2
Что вы подразумеваете под "наиболее общей"?
0
geronik
0 / 0 / 0
Регистрация: 01.01.2012
Сообщений: 10
02.01.2012, 15:46  [ТС] #3
C++
1
2
3
4
5
6
7
8
9
10
11
FILE *f2=fopen (argv[2],"w");
        
        for (i=0;i<=Nx-Mx;i++)
        {
                for (j=0;j<=Ny-My;j++)
                {
                        mas2[i][j]=sort(mas1,Mx,My,i,j);
                        fprintf(f2,"%d\t",mas2[i][j]);
                }
                fprintf (f2,"\n");
        }
Эту часть кода необходимо совместить с процедурой.

Добавлено через 39 минут
пожалуйста помогите. как это можно сделать?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.01.2012, 15:46
Привет! Вот еще темы с ответами:

Программа не воспринимает вводимый текст. Что нужно добавить чтобы она заработала? - C++
#include &lt;iostream&gt; using namespace std; int main () { int gallons, liters; cout &lt;&lt; &quot;Vvedite chislo gallonov: &quot;; ...

Шифр Виженера: переписать код так, чтобы программа не только зашифровала, но и расшифровала текст - C++
Текст он зашифрует но не расшифрует. А как сделать чтобы он зашифровал и расшифровал текст??? #include &quot;stdafx.h&quot; #include &lt;ctime&gt; ...

Дополнить функцию, чтобы она находила наиболее встречаемое число - C++
Нужно дополнить функцию чтоб она не тока сравнивала одинаковые элементы но и из этих одниноковых элементов находила чаще всего встречаемое...

Нужно сделать так, чтобы программа запускалась только если ей передать заданный аргумент. - C++
сразу приношу извинения, но я не нащёл подходящего раздела. суть такова. есть программа(исходников нет) нужно сделать так, чтобы она...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

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