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

Почему-то на работает функция!( - C++

Восстановить пароль Регистрация
 
enotik
1 / 1 / 0
Регистрация: 20.10.2010
Сообщений: 147
06.12.2010, 01:37     Почему-то на работает функция!( #1
Задача написать функцию, упорядочивающую массив по возрастанию.
почему-то не работает(((
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
#include "stdio.h"
int FUNC_Vozr (int x[],int n)
{
    int min=x[0], imin=0,j,i,l;
 
        for (i=0;i<n-1;i++)
        {min=x[i];imin=i;};
    for(j=i;j<n;j++) 
    {
        if (x[j]<min) 
        {l++,min=x[j],imin=j;};
         x[imin]=x[i]; x[i]=min;
    };
    return x[i];
}
 
 
    void main ()
    {
        int a[100];
    int n,i,Yporaidoch_mass;
printf ("enter kolichestvo elementov massiva\n");
scanf ("%d",&n);
 
for (i=0;i<n;i++)
{printf ("elementi massiva: ");
scanf ("%d",&a[i]);};
printf ("Vvedennii massiv:=%d",a[i]);
Yporaidoch_mass=FUNC_Vozr(a,n);
printf("yporiadochennii massiv %f",Yporaidoch_mass);
    }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.12.2010, 01:37     Почему-то на работает функция!(
Посмотрите здесь:

Почему не работает функция? C++
Почему не работает функция? C++
Почему функция работает именно так? C++
Почему не работает выведенная функция C++
Почему не работает функция Matricav? C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Aye Aye
 Аватар для Aye Aye
367 / 281 / 36
Регистрация: 17.12.2009
Сообщений: 567
06.12.2010, 02:14     Почему-то на работает функция!( #2
Yporaidoch_mass=FUNC_Vozr(a,n); это не обязательно, массивы передаются по ссылке. т. е. сортирующая функция упорядочивает массив a, а не его копию. И у Yporaidoch_mass должен быть тип int *, а не int.

что конкретно не работает?
полезно будет почитать про сортировку пузырьком на википедии, сразу все станет понятно.
enotik
1 / 1 / 0
Регистрация: 20.10.2010
Сообщений: 147
12.12.2010, 19:46  [ТС]     Почему-то на работает функция!( #3
Не работает конкретно то, что вместо исходного массива при запуске программы выдает мусор типа -85 ...и т.д. упорядоченный массив: - выдает вообще что-то непонятно.

исправили сортировку на пузырек, и все ранво работает неправильно((((


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
#include "stdio.h"
int FUNC_Vozr (int x[],int n)
{
    int min=x[0], imin=0,j,l=0,i,temp;
 
        for (i=0;i<n-1;i++)
            for (j=0;j<n-i;j++)
                if(x[j]>x[j+1])
                {
                    temp=x[j];
                    x[j]=x[j+1];
                    x[j=1]=temp;};
    return x[i];
}
 
 
    void main ()
    {
        int a[100];
    int n,i;
    int Yporaidoch_mass;
printf ("enter kolichestvo elementov massiva\n");
scanf ("%d",&n);
 
for (i=0;i<n;i++)
{printf ("element massiva %d: ",i+1);
scanf ("%d",&a[i]);};
printf ("Vvedennii massiv:=%d\n",a[i]);
 
Yporaidoch_mass=FUNC_Vozr(a,n);
printf("yporiadochennii massiv %f",Yporaidoch_mass);
    }


И у Yporaidoch_mass должен быть тип int *, а не int.
Как кокретно это записать, я поставила int* -компилятор выдал ошибку.
MILAN
 Аватар для MILAN
883 / 777 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
12.12.2010, 20:00     Почему-то на работает функция!( #4
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
#include <stdio.h>
#include <conio.h>
void FUNC_Vozr (int x[],int n)
{
        int temp,i,j;
             for (i=0; i<n; i++)
    {
                     for (j=i; j<n; j++)
               {
                             if(x[j]>x[j+1])
                                {
                                        temp=x[i];
                                        x[i]=x[j];
                                        x[j]=temp;
                 }
               }
     }
}
 
void main ()
{
   int a[100];
   int n,i;
   int Yporaidoch_mass;
    printf ("enter kolichestvo elementov massiva\n");
    scanf ("%d",&n);
     for (i=0;i<n;i++)
      {  
         printf ("element massiva %d: ",i+1);
         scanf ("%d",&a[i]);
      }
    printf ("Vvedennii massiv: ");
      for (i=0;i<n;i++)
       {
         printf ("%d ",a[i]);   
       } 
     FUNC_Vozr(a,n);
     printf("\nyporiadochennii massiv: ");
       for (i=0;i<n;i++)
         {
           printf ("%d ",a[i]);   
         }
     getch();
 }
3a4em
11 / 11 / 1
Регистрация: 05.12.2010
Сообщений: 26
12.12.2010, 20:17     Почему-то на работает функция!( #5
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
#include <iostream>
using namespace std;
void func (int *A,int n);
void main()
{
        int i = 0, n = 0;
        cout << "BBedite pezmernoct : ";
        cin >> n;
        int *A= new int [n];
        cout << "BBodite MAcciv : ";
        for (i=0;i<n;i++)
        {
                cin >> A[i];
        }
        func(A,n);
        for (i=0;i<n;i++)
        {
                cout << A[i] << "  ";
        }
}
void func (int *A,int n)
{
    int temp = 0;
    for (int i=1;i<(n-1);i++)
    {
        for (int j=0;j<(n-i);j++)
        {
            if (A[j]>A[j+1])
            {
                temp = A[j];
                A[j] = A[j+1];
                A[j+1]= temp;
            }
        }
}
}
Yandex
Объявления
12.12.2010, 20:17     Почему-то на работает функция!(
Ответ Создать тему
Опции темы

Текущее время: 02:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru