Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
8 / 8 / 4
Регистрация: 05.10.2010
Сообщений: 137
1

Где подвох?

24.10.2010, 19:49. Показов 964. Ответов 19
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Вот код пишет что z необьявлен!
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include "stdafx.h"
#include <iostream>
using namespace std;
int zvezda(int z)
{
    cout<<"Enter line size: ";
    cin>>z;
    return z;
}
int main()
{
    int i=0,w=0;
    w = zvezda(z);
    while (i<w)
    {
        i++;
        cout<<"*";
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.10.2010, 19:49
Ответы с готовыми решениями:

Циклический сдвиг, где подвох?
/* Проект 7-1 Функции циклического сдвига байта влево и вправо. */ #include&lt;iostream&gt; ...

Запуская программу ни какой реакции нету, где тут подвох?
#ifdef USE_PRECOMPILED_HEADER #include &lt;iostream&gt; #include &lt;cstdlib&gt; #define N 1024 using...

В чем подвох?
#include &lt;stdio.h&gt; #include &lt;wchar.h&gt; #include &lt;math.h&gt; main(){ double zero = 0.0; ...

в чем подвох?!
всем здраствуйте, вот в книжке дана, вот эта кодировка и задание, чтобы найти ошибку и исправить, я...

19
В астрале
Эксперт С++
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
24.10.2010, 19:50 2
egorikem, И где объявление z в main-е?
C++
1
2
3
4
5
6
7
8
9
10
int main()
{
        int i=0,w=0;
        w = zvezda(z);
        while (i<w)
        {
                i++;
                cout<<"*";
        }
}
0
8 / 8 / 4
Регистрация: 05.10.2010
Сообщений: 137
24.10.2010, 20:45  [ТС] 3
Но он должен взять Z из функции!

Добавлено через 38 секунд
Спасибо усё работает!
0
63 / 35 / 13
Регистрация: 21.10.2010
Сообщений: 538
24.10.2010, 20:48 4
Переменная локальна только там где она объявлена+функция никогда не может отправлять переменные, только их значения
0
Эксперт С++
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
24.10.2010, 20:51 5
egorikem, вы понимаете, что передаёте z в функцию в качестве параметра? И тот z, который в итоге будет использоваться в функции, это совсем другой z. Если хотите изменять z в самой функции, используйте указатели или ссылки. А если даже и нет, то всё равно вы должны объявить z в main'е и передавать его в функцию.
0
8 / 8 / 4
Регистрация: 05.10.2010
Сообщений: 137
24.10.2010, 20:54  [ТС] 6
Спасибо теперь я понял! А где здесь еррор?
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
#include "stdafx.h"
#include <iostream>
using namespace std;
int mass(int arr[],int s)
{
    int i;
    cout<<"Enter mass size: ";
    cin>>s;
    return s;
    for (i=0;i<s;i++)
    {
        cout<<"Enter mass element: ";
        cin>>arr[i];
        return arr[i];
    }
}
int main()
{
    int arr[999];
    int s;
    int i;
    cout<<"Your mass: ";
    for (i=0;i<mass(s);i++)
    {
        cout<<mass(arr[i]);
    }
}
0
В астрале
Эксперт С++
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
24.10.2010, 20:57 7
egorikem,
C++
1
int mass(int arr[],int s)//Определение функции
C++
1
2
mass(s) //Вызов
mass(arr[i])//Вызов
Ошибку сами поймете?

C++
1
2
3
4
5
6
7
8
9
        cout<<"Enter mass size: ";
        cin>>s;
        return s;//Выйдет из функции здесь. Зачем остальное? оО
        for (i=0;i<s;i++)
        {
                cout<<"Enter mass element: ";
                cin>>arr[i];
                return arr[i];
        }
0
8 / 8 / 4
Регистрация: 05.10.2010
Сообщений: 137
24.10.2010, 21:15  [ТС] 8
Не понял О_о
0
В астрале
Эксперт С++
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
24.10.2010, 21:19 9
egorikem, ...

Книжки почитайте. Ну такие вопросы задавать - уже не катит вообще...

Объясните мне смысл своей программы...

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
#include "stdafx.h"
#include <iostream>
using namespace std;
int mass(int arr[],int s)//Отлично. Функция принимает массив и число
{
        int i;
        cout<<"Enter mass size: ";
        cin>>s;//Вводим размер массива
        return s;//Возвращаем его. Функция прерывается. Дальше не идет
        //Всего что после return в этой функции для компилятора не существует
        //Но даже если бы существовало. Что за бред?
        //Цикл от 0 до s
        for (i=0;i<s;i++)
        {
                cout<<"Enter mass element: ";
                //Вводим элемент...
                cin>>arr[i];
                //И возвращаем его! То есть переписываем всегда 1-ый элемент. Шик
                return arr[i];
        }
}
int main()
{
        int arr[999];//Некорректно но фиг с ним
        int s;
        int i;
        cout<<"Your mass: ";
        for (i=0;i<mass(s);i++)//Вызываем функцию... КАК!?
        {
                cout<<mass(arr[i]);//Отлично просто.
                //В функции mass - цикл. В итоге по сути, если бы все работало
                //Вывелся бы массив 10 раз. Хотя нет. Такая передача даже не сработала бы.
        }
}
0
Эксперт С++
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
24.10.2010, 21:22 10
Вы функцию объявили, которая принимает два параметра. А вызываете её для каждого параметра по-отдельности. Т.е. каждый вызов функции - попытка вызвать функцию с одним параметром. Такой перегрузки у вас нет, поэтому компилятор ругается. Вызывайте так:
mass(arr, s)
Код не смотрел, но есть подозрение, что логика там тоже нарушена.

Добавлено через 1 минуту
Lavroff, за комменты - зачОт)))
0
В астрале
Эксперт С++
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
24.10.2010, 21:23 11
А вот как должно быть

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
#include "stdafx.h"
#include <iostream>
using namespace std;
void mass(int arr[],int* s)//Отлично. Функция принимает массив и число
{
        int i;
        cout<<"Enter mass size: ";
        cin>>*s;//Вводим размер массива
        for (i=0;i<*s;i++)
        {
                cout<<"Enter mass element: ";
                //Вводим элемент...
                cin>>arr[i];
        }
}
int main()
{
        int arr[999];//Некорректно но фиг с ним
        int s;
        int i;
        cout<<"Your mass: ";
        mass(arr, &s);//Корректный вызов функции
        for (i=0;i<s;i++)
        {
                cout<<arr[i]<<' ';
        }
        cout<<'\n';
}
0
8 / 8 / 4
Регистрация: 05.10.2010
Сообщений: 137
24.10.2010, 21:30  [ТС] 12
Люди объясните дебилу, где ошибка???? Не какая а где и как правильно!
0
Эксперт С++
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
24.10.2010, 21:33 13
Вам написали уже, где у вас ошибки. Легче написать, где их нет.
0
В астрале
Эксперт С++
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
24.10.2010, 21:34 14
egorikem, Елки палки... Комменты прочитать тяжело?

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
#include "stdafx.h"
#include <iostream>
using namespace std;
int mass(int arr[],int s)//Отлично. Функция принимает массив и число
{
        int i;
        cout<<"Enter mass size: ";
        cin>>s;//Вводим размер массива
        return s;//Возвращаем его. Функция прерывается. Дальше не идет. Логическая ошибка
        //Всего что после return в этой функции для компилятора не существует
        //Но даже если бы существовало. Что за бред?
        //Цикл от 0 до s
        for (i=0;i<s;i++)
        {
                cout<<"Enter mass element: ";
                //Вводим элемент...
                cin>>arr[i];
                //И возвращаем его! То есть переписываем всегда 1-ый элемент. Шик.
                //Логическая ошибка
                return arr[i];
        }
}
int main()
{
        int arr[999];//Некорректно но фиг с ним
        int s;
        int i;
        cout<<"Your mass: ";
        for (i=0;i<mass(s);i++)//Вызываем функцию... КАК!? Неправильный вызов функции+логическая ошибка
        {
                cout<<mass(arr[i]);//Отлично просто. Неправильный вызов функции + логическая ошибка
                //В функции mass - цикл. В итоге по сути, если бы все работало
                //Вывелся бы массив 10 раз. Хотя нет. Такая передача даже не сработала бы.
        }
}
1
C/C++
93 / 93 / 18
Регистрация: 01.07.2010
Сообщений: 281
24.10.2010, 21:42 15
Как функцию описали, так её и вызывают. Функции передаются аргументы. Компилятор додумывать за тебя ничё не будет. Он выдаст ошибку. Рекомендую почитать книги по C++.
0
8 / 8 / 4
Регистрация: 05.10.2010
Сообщений: 137
24.10.2010, 22:07  [ТС] 16
Я не понимаю твои коменты!!!!
0
В астрале
Эксперт С++
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
24.10.2010, 22:08 17
egorikem, Мда. А я ведь на русском пишу. Совет: открой какую-нибудь книгу по С++ и прочти хоть что-нибудь.
0
8 / 8 / 4
Регистрация: 05.10.2010
Сообщений: 137
24.10.2010, 22:14  [ТС] 18
Ландо я дебил сорри что беспокою....
0
В астрале
Эксперт С++
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
24.10.2010, 22:15 19
egorikem, Я не говорил, что вы дебил. Я все понимаю. Сам был совсем начинающим около года назад. Но и вы поймите. Нервов не на все хватает. А когда 2-3 раза кидаешь код с комментариями, а человек их не понимает... Ну. Тут поможет только хорошая книжка.
Извиняюсь, если задел.
0
8 / 8 / 4
Регистрация: 05.10.2010
Сообщений: 137
24.10.2010, 22:16  [ТС] 20
Да не... наоборот спасибо! За урок =)
0
24.10.2010, 22:16
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.10.2010, 22:16
Помогаю со студенческими работами здесь

Найти подвох в готовой программе Ряда Тейлора
Сделал программу, по заданному заданию: Вычислить и вывести на экран в виде таблицы значения...

Купил Б/У видеокарту, где подвох?
Всем привет, сегодня был на радиорынке и купил поддержанную видеокарту, продавец Ее продал как GTX...

Акционные модели, где подвох?
Собирался покупать наушники и в магазине увидел несколько акционных моделей по сниженным почти в...

Отправка почты по SMTP (вроде все корректно, где подвох?)
Привет народ, столкнулся с проблемой отправки писем. Использую код приведенный ниже, но у меня...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru