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

Проблемы с C++ - C++

Восстановить пароль Регистрация
 
Alaromio
Сообщений: n/a
06.09.2012, 22:13     Проблемы с C++ #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
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
90
91
92
93
94
95
96
97
// arraysIntoFunctions.cpp : Defines the entry point for the console application.
//
 
#include "stdafx.h"
#include "header.h"
#include "iostream"
 
// {{1,2},{3,2},{3,9}}
 
void dmas2(int mas[][2],int count)  
{
    bool b=true; //~1;
    //b=(i==6);
    b = false; // ~0
    for(int i=0;i<count;i++)  
    {
        for(int j=0;j<2;j++)
            mas[i][j] =i-j+10;
    }
}
 
void function(int mas[],int count)     
{
    int i;
    for (i=0;i<count;i++)
        mas[i]+=10;
}
 
 
int fact(int x)
{
    if (x>1)
        return fact(x-1)*x;
    //else
    //  return 1;
}
 
void func()
{
    int *t;
    t = new int;  
    int i;
    for(i=0;i<10;i++)
    {
        *(t+i) = 2+i;
    }
}
 
void insert(pElement p,float f)
{
    //
}
 
int _tmain(int argc, _TCHAR* argv[])
{
 
    int abb = fact(8);
    func();
 
    // insertion sort
    int a[5] = {3,5,3,8,4};
    int i,j,min,temp;
    for(i=0;i<5;i++)
    {
        j = i;
        while(j>0 && a[j-1] > a[j])
        {
            temp = a[j];
            a[j] = a[j-1];
            a[j-1] = temp;
            j--;
        }
    }
 
    // insertion sort
 
    //int a[5] = {3,5,3,8,4};
 
    for(i=0;i<5;i++)
    {
        min = a[i];
        for(j=i;j<5;j++)
        {
            if(a[j]<min)
            {
                min = j;
            }
        }
 
        temp = a[min];
        a[min] = a[i];
        a[i] = temp;
    }
 
 
        return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.09.2012, 22:13     Проблемы с C++
Посмотрите здесь:

C++ Проблемы с gets
C++ Проблемы компилятора с++
C++ Проблемы с перегрузкой
C++ Проблемы с массивами
C++ Проблемы с STL
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ValeryS
Модератор
6374 / 4840 / 442
Регистрация: 14.02.2011
Сообщений: 16,043
06.09.2012, 22:21     Проблемы с C++ #2
Цитата Сообщение от Alaromio Посмотреть сообщение
C++
1
2
3
4
5
6
int fact(int x)
{
 if (x>1)
 return fact(x-1)*x;
 //else
 // return 1;
}
это ты закоментировал второй выход
из этой функции никогда не будет выхода и программа рухнет из-за недостатка стека

Добавлено через 2 минуты
Цитата Сообщение от Alaromio Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
void func()
{
 int *t;
 t = new int; 
 int i;
 for(i=0;i<10;i++)
 {
 *(t+i) = 2+i;
 }
}
это вообще здорово
во первых утечка памяти
во вторых выход за пределы массива (которого здесь даже и нет)
Alaromio
Сообщений: n/a
06.09.2012, 22:31     Проблемы с C++ #3
Мда...не я код писал, мне препод дал чтобы я ему потом обьяснил что это и что тут не правильно..
Посоветуйте какое-нибудь чтиво чтобы хоть чуть-чуть чехлы собрать, для меня каждое третье слово не понятно
ValeryS
Модератор
6374 / 4840 / 442
Регистрация: 14.02.2011
Сообщений: 16,043
06.09.2012, 22:34     Проблемы с C++ #4
Цитата Сообщение от Alaromio Посмотреть сообщение
что тут не правильно..
ты не поверишь тут все не правильно
например
Цитата Сообщение от Alaromio Посмотреть сообщение
bool b=true; //~1;
//b=(i==6);
b = false; // ~0
бесполезное объявление переменной b
она нигде не используется
причем сначала она true и тут же false
бесполезные строки
Intel~lect
 Аватар для Intel~lect
135 / 124 / 2
Регистрация: 03.07.2012
Сообщений: 355
06.09.2012, 22:37     Проблемы с C++ #5
C++
1
2
3
4
5
6
void function(int mas[],int count)  // в функцию передается массив а точнее указатель на массив int mass[] и его размер count
{
    int i;                           // переменная целого типа
    for (i=0;i<count;i++)            // цикл от 0 до count-1.
        mas[i]+=10;                  // каждый элемент массива увеличивается на 10
}
ValeryS
Модератор
6374 / 4840 / 442
Регистрация: 14.02.2011
Сообщений: 16,043
06.09.2012, 22:42     Проблемы с C++ #6
насчет
Цитата Сообщение от Alaromio Посмотреть сообщение
int fact(int x)
я погорячился не будет зацикливания
если раскомментируешь то все будет в порядке при x равном или меньше 1 произойдет выход и раскрутка стека
а в теперешнем варианте функция она вернет неизвестно что да и компилироваться скорее всего не будет скажет нет возвращаемого значения

Добавлено через 2 минуты
Цитата Сообщение от Alaromio Посмотреть сообщение
int i;
for(i=0;i<10;i++)
в третьих давно уже переменную объявляют в цикле
вот так
C++
1
for(int i=0;i<10;i++)
Kastaneda
07.09.2012, 09:37     Проблемы с C++
  #7

Не по теме:

C++
1
2
void func()
void function(int mas[],int count)
функциям с такими именами не хватает коментариев, типа
C++
1
void func() // some function

Yandex
Объявления
07.09.2012, 09:37     Проблемы с C++
Ответ Создать тему
Опции темы

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