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

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

Войти
Регистрация
Восстановить пароль
 
 
egorikem
7 / 7 / 1
Регистрация: 05.10.2010
Сообщений: 137
#1

Где подвох? - C++

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

Вот код пишет что 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.10.2010, 19:49
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Где подвох? (C++):

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

в чем подвох?! - C++
всем здраствуйте, вот в книжке дана, вот эта кодировка и задание, чтобы найти ошибку и исправить, я запускал и ошибку указал на m= a; но я...

Объясните, где задается функция, где расчитывается и как она называется - C++
Объясните где задается функция, где расчитывается и как она называется.заранее спасибо #include &lt;iostream&gt; #include &lt;stdio.h&gt; ...

Для чего и где и удобнее использовать структуры, а где классы? - C++
Для чего и где и удобнее использовать структуры, а где классы?

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

Вывести на экран количество слов где первая и последняя буквы одинаковы (не понимаю где ошибка) - C++
задан текст нужно вывести на экран количество слов где первая и последняя буквы одинаковы #include &lt;iostream&gt; #include &lt;conio.h&gt; ...

19
ForEveR
В астрале
Эксперт С++
7978 / 4737 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
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
egorikem
7 / 7 / 1
Регистрация: 05.10.2010
Сообщений: 137
24.10.2010, 20:45  [ТС] #3
Но он должен взять Z из функции!

Добавлено через 38 секунд
Спасибо усё работает!
0
hepr
61 / 33 / 5
Регистрация: 21.10.2010
Сообщений: 539
24.10.2010, 20:48 #4
Переменная локальна только там где она объявлена+функция никогда не может отправлять переменные, только их значения
0
silent_1991
Эксперт С++
4984 / 3041 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
24.10.2010, 20:51 #5
egorikem, вы понимаете, что передаёте z в функцию в качестве параметра? И тот z, который в итоге будет использоваться в функции, это совсем другой z. Если хотите изменять z в самой функции, используйте указатели или ссылки. А если даже и нет, то всё равно вы должны объявить z в main'е и передавать его в функцию.
0
egorikem
7 / 7 / 1
Регистрация: 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
ForEveR
В астрале
Эксперт С++
7978 / 4737 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
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
egorikem
7 / 7 / 1
Регистрация: 05.10.2010
Сообщений: 137
24.10.2010, 21:15  [ТС] #8
Не понял О_о
0
ForEveR
В астрале
Эксперт С++
7978 / 4737 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
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
silent_1991
Эксперт С++
4984 / 3041 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
24.10.2010, 21:22 #10
Вы функцию объявили, которая принимает два параметра. А вызываете её для каждого параметра по-отдельности. Т.е. каждый вызов функции - попытка вызвать функцию с одним параметром. Такой перегрузки у вас нет, поэтому компилятор ругается. Вызывайте так:
mass(arr, s)
Код не смотрел, но есть подозрение, что логика там тоже нарушена.

Добавлено через 1 минуту
Lavroff, за комменты - зачОт)))
0
ForEveR
В астрале
Эксперт С++
7978 / 4737 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
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
egorikem
7 / 7 / 1
Регистрация: 05.10.2010
Сообщений: 137
24.10.2010, 21:30  [ТС] #12
Люди объясните дебилу, где ошибка???? Не какая а где и как правильно!
0
silent_1991
Эксперт С++
4984 / 3041 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
24.10.2010, 21:33 #13
Вам написали уже, где у вас ошибки. Легче написать, где их нет.
0
ForEveR
В астрале
Эксперт С++
7978 / 4737 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
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++
90 / 90 / 5
Регистрация: 01.07.2010
Сообщений: 281
24.10.2010, 21:42 #15
Как функцию описали, так её и вызывают. Функции передаются аргументы. Компилятор додумывать за тебя ничё не будет. Он выдаст ошибку. Рекомендую почитать книги по C++.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.10.2010, 21:42
Привет! Вот еще темы с ответами:

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

Для матриц I=2P-E, где Е-единичная матрица,а Р=Р(n,n), проверить св-во I^2=Е.При помощи метода Гаусса решить СЛАУ Ix=y, где вектор состоит из единиц. - C++
Добрый день!Помогите пожалуйста с решением данной задачи: Задание: Необходимо написать и отладить программу в среде Borland C++ 3.1 по...

Где у файла начало , а где конец? - C++
Добрый день! Учу ввод в файл и вывод из файла. Подскажите, пожалуйста, где у файла конец и начало. Допустим, я ввожу в файл объекты один...

Типы данных - где нужно использовать char, а где unsigned char? - C++
Всем привет! У меня вопрос, искал ответ на него, но безуспешно. Вопрос следующий: есть два типа char и unsigned char. Я понимаю, что в...


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

Или воспользуйтесь поиском по форуму:
15
Yandex
Объявления
24.10.2010, 21:42
Ответ Создать тему
Опции темы

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