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

Возвращаемое значение функции - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Реализация программы http://www.cyberforum.ru/cpp-beginners/thread34176.html
#include <iostream> #include <algorithm> #include <numeric> int main() { using namespace std; srand((unsigned)time(NULL)); const int N = 1000; int a;
C++ Общий наибольщий делитель в одномерном массиве дано: найти общий наибольщий делитель в одномерном массиве ( в массиве все элементы положительны). help me please! http://www.cyberforum.ru/cpp-beginners/thread34168.html
C++ класс Множество
помогите решить пожалуйста...исжу на экзамене...требуется срочная помощь Разработайте класс Множество.Класс должен содержать элементы множества как закрытые члены,неявный конструктор,конструктор с...
Известно что некоторое число содержится в каждом из трех целочисленных неубывающих массивов C++
//надо написать при помощи использования функции// Известно что некоторое число содержится в каждом из трех целочисленных неубывающих массивов x(1)<= x(2)<=x (n), y(1)<=y(2)<= y(m) и...
C++ Найти все пары натуральных дружественных чисел, меньших 50000 http://www.cyberforum.ru/cpp-beginners/thread34149.html
Два натуральных числа дружественными, если каждое из них равно сумме всех делителей другого (само другое число в качестве делителя не рассматривается). Найти все пары натуральных дружественных чисел,...
C++ из Pascal в с++ Кто-нибудь помогите перевести... решение в Pascale вот... var n,r,m: integer; begin repeat write('n='); readln(n) until n>0; M:=n; r:=1; while m>0 do подробнее

Показать сообщение отдельно
Lil Crazy
6 / 6 / 1
Регистрация: 23.03.2009
Сообщений: 198

Возвращаемое значение функции - C++

14.05.2009, 20:37. Просмотров 738. Ответов 3
Метки (Все метки)

Здарвствуйте. Моя задача состоит в написании следующей программы: вычислить среднее арифметическое значение элементов матрицы W(L,L), расположенных слева и справа от двух диагоналей. Эта программа программа написана на паскале:
Pascal
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
uses crt;
const nmax=30;{максимальный размер матрицы}
var W:array[1..nmax,1..nmax]of real;{тип матрицы}
    L,i,j,k:integer;
    sr:real;{среднее}
begin
clrscr;
randomize;{генерация случайных чисел}
repeat
write('Razmer matricy L=');
readln(L);
until (L>=3)and(L<=nmax);{проверяем размер матрицы}
writeln('Matrica W:');
sr:=0;k:=0;
for i:=1 to L do
   begin
     for j:=1 to L do
       begin
         W[i,j]:=10*random;{заполняем матрицу случайными вещественными числами из инт. 0-10}
         if((j<i)and(j<L-i+1))or((j>i)and(j>L-i+1)){если мы в заданной области}
         then
           begin
             TextColor(4);{сделаем подсветку красным}
             k:=k+1; {сосчитаем элементы этой области}
             sr:=sr+W[i,j]; {сосчитаем сумму}
             write(W[i,j]:5:2);{выведем с подсветкой}
           end
         else  {если за пределами области}
           begin
             Textcolor(0);{цвет по умолчанию}
             write(W[i,j]:5:2);{выводим остальные числа}
           end;
       end;
     writeln;
   end;
sr:=sr/k;{считаем среднее}
writeln('Srednee=',sr:0:2);
readln
end.
Я её переделал на си:
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
88
89
#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <math.h>
 
float SortMatrix(int **W, const int L)
{
    int i,j;
    int k=0;
    float sr=0;
    for (i=1;i<L;i++)
    {
        for (j=1;j<L;j++)
        {
            if (((j<i) && (j<L-i+1)) || ((j>i) &&(j>L-i+1)))
            {
                k=k+1;
                sr=sr+W[i][j];
            }
        }
    }
    sr=sr/k;
    return sr;
}
 
void PrintMatrix(int **W, const int L)
{
    int i,j;
    for (i=0;i<L;i++)
    {
        for (j=0;j<L;j++)
        {
            printf("%5i",W[i][j]);
        }
        printf("\n");
    }
}
 
void main()
{  
    int L;
    int i,j;
    float sr;
    FILE *InputFile,*OutputFile;
    char PathIn[128],PathOut[128];
    printf("\nEnter a path for input file: ");
    scanf("%s",PathIn); 
    if ((InputFile=fopen(PathIn, "r")) == NULL )
    {
        perror(PathIn);
        exit;
    }
    fscanf (InputFile,"%d ",&L);
    int **W = new int*[L];
    for(i=0; i<L; i++)
    {
         W[i] = new int[L];
    } 
    for (i=0;i<L;i++)
    {
         for (j=0;j<L;j++)
            fscanf (InputFile,"%d ",&W[i][j]);
    }
    printf("Enter a path for output result file: ");
    scanf("%s",PathOut);  
    OutputFile=fopen(PathOut,"w+"); 
    fprintf(OutputFile,"Initial matrix:\n");
    printf("Initial matrix: \n");
    PrintMatrix(W,L);
    for (i=0;i<L;i++)
    {
        for (j=0;j<L;j++)
        {
            fprintf(OutputFile,"%4d",W[i][j]);
        }
        fprintf(OutputFile,"\n");
    }
    sr=SortMatrix(W,L);
    printf("Midlle ariphemetic is %d",sr);
    fprintf(OutputFile,"Midlle ariphemetic is %d",sr);
    fclose(OutputFile);
    fclose(InputFile);  
    for(i=0; i<L; i++)
    {
        delete[] W[i];
    }
    delete[] W;
    getch();
}
Но среднее значение всегда 0. Почему и как это исправить???
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru