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

C++

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 8, средняя оценка - 4.75
doommer
1 / 1 / 0
Регистрация: 17.08.2010
Сообщений: 22
#1

Всего ничего, списочек) - C++

18.08.2010, 14:41. Просмотров 1020. Ответов 14
Метки нет (Все метки)

Товарищи, я надеюсь в вашу помощь в решение задачки( написать программу, которая читает числа, пока не введешь ноль. Запоминает их в список а потом распечатывает их квадраты. )
Если не получается решить это чудо, скажите плз хоть где про списки почитать, т.к. это делается через список.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
oxotnik
 Аватар для oxotnik
1586 / 1063 / 33
Регистрация: 21.08.2008
Сообщений: 4,545
Записей в блоге: 1
18.08.2010, 14:52     Всего ничего, списочек) #2
http://www.cplusplus.com/reference/stl/list/push_back/

вывод квадратов - домашнее задание
doommer
1 / 1 / 0
Регистрация: 17.08.2010
Сообщений: 22
18.08.2010, 15:33  [ТС]     Всего ничего, списочек) #3
Омг, за ссылочку спасибо! Реально помогло, а то я уже иначе начинать хотелюю ппц)

Добавлено через 31 минуту
Хотя нет ребят, накидайте плиз побольше инфы, этого маловато... Полуфабрикат получается! Я так и не понял где там сохранение, вывод, только подсчет, а он мне не нужен абсолютно.
oxotnik
 Аватар для oxotnik
1586 / 1063 / 33
Регистрация: 21.08.2008
Сообщений: 4,545
Записей в блоге: 1
18.08.2010, 15:48     Всего ничего, списочек) #4
там заполняется список значениями, тебе остается только потом пройтись по нему и каждый элемент возвести в квадрат и вывести на экран
http://www.cplusplus.com/reference/stl/list/begin/
doommer
1 / 1 / 0
Регистрация: 17.08.2010
Сообщений: 22
18.08.2010, 17:10  [ТС]     Всего ничего, списочек) #5
эм... я понял о чем Вы говорите, но я видимо глуповат для осуществления этого в проге... Ща еще потраим,может че и вылезет. Всеравно спасибо!

Добавлено через 9 минут
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>
#include <list>
using namespace std;
 
int main ()
{
  list<int> mylist;
  int myint;
 
  cout << "Please enter some integers (enter 0 to end):\n";
 
  do {
    cin >> myint;
    mylist.push_back (myint);
  } while (myint);
 
  list<int>::iterator it;
 
  cout << "mylist contains:";
  for ( it=mylist.begin() ; it != mylist.end(); it++ )
    cout << " " << *it;
 
  cout << endl;
 
  return 0;
}
вот такую штучку намутил! а в какой части с квадратиком разбираться?
oxotnik
 Аватар для oxotnik
1586 / 1063 / 33
Регистрация: 21.08.2008
Сообщений: 4,545
Записей в блоге: 1
18.08.2010, 17:22     Всего ничего, списочек) #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
28
29
#include <iostream>
#include <list>
using namespace std;
 
int main ()
{
    list<int> mylist;
    int myint;
 
    cout << "Please enter some integers (enter 0 to end):\n";
 
    do
    {
        cin >> myint;
        mylist.push_back (myint);
    } while (myint);
 
    list<int>::iterator it;
 
    cout << "mylist contains:";
    for ( it=mylist.begin() ; it != mylist.end(); it++ )
    {
        myint = *it;
        cout << myint*myint <<endl;
    }
 
 
    return 0;
}
Manjak
 Аватар для Manjak
269 / 175 / 7
Регистрация: 12.03.2010
Сообщений: 494
19.08.2010, 01:02     Всего ничего, списочек) #7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <list>
#include <iterator>
#include <algorithm>
#include <iostream>
 
using namespace std;
 
int main(int argc, char* argv[])
{
    istream_iterator<int> itr(cin);
    list<int> numbers;
 
    while (*itr != 0)
        numbers.push_back(*(itr++));
 
    cout << "After transformation: " << endl;
    transform(numbers.begin(), numbers.end(), numbers.begin(), ostream_iterator<int>(cout, "\n"), multiplies<int>());
 
    system("pause");
    return 0;
}
easybudda
Эксперт С++
 Аватар для easybudda
9412 / 5435 / 917
Регистрация: 25.07.2009
Сообщений: 10,428
19.08.2010, 03:16     Всего ничего, списочек) #8
doommer, oxotnik, где-то вы поблизости друг от друга искали... К тому же в таком виде 0 в конец списка добавится.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <list>
 
int main(){
    std::list<int> list;
    int num;
    
    while ( std::cin >> num && num != 0 )
        list.push_back(num * num);
    
    for ( std::list<int>::const_iterator i = list.begin(); i != list.end(); ++i )
        std::cout << *i << std::endl;
    
    return 0;
}
или ближе к заданию
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <list>
 
int main(){
    std::list<int> list;
    int num;
    
    while ( std::cin >> num && num != 0 )
        list.push_back(num);
    
    for ( std::list<int>::const_iterator i = list.begin(); i != list.end(); ++i )
        std::cout << *i * *i << std::endl;
    
    return 0;
}
oxotnik
 Аватар для oxotnik
1586 / 1063 / 33
Регистрация: 21.08.2008
Сообщений: 4,545
Записей в блоге: 1
19.08.2010, 09:32     Всего ничего, списочек) #9
Цитата Сообщение от easybudda Посмотреть сообщение
doommer, oxotnik, где-то вы поблизости друг от друга искали..
по приведенным ссылкам уже готовый код был, надо было его только объединить

Цитата Сообщение от easybudda Посмотреть сообщение
К тому же в таком виде 0 в конец списка добавится.
я объединил, не особо парясь
doommer
1 / 1 / 0
Регистрация: 17.08.2010
Сообщений: 22
19.08.2010, 13:46  [ТС]     Всего ничего, списочек) #10
Ребят,это все супер,а вот если не использовать стандартные реализации, без std::list, например использовать только функции работы с указателями?! т.е. через указатели... как это выглядеть должно?
easybudda
Эксперт С++
 Аватар для easybudda
9412 / 5435 / 917
Регистрация: 25.07.2009
Сообщений: 10,428
19.08.2010, 15:32     Всего ничего, списочек) #11
Цитата Сообщение от doommer Посмотреть сообщение
а вот если не использовать стандартные реализации, без std::list, например использовать только функции работы с указателями?! т.е. через указатели... как это выглядеть должно?
Вот так может выглядеть:
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
#include <stdio.h>
#include <stdlib.h>
 
typedef struct LISTNODE {
    int nVal;
    struct LISTNODE * pNext;
} listnode_t;
 
listnode_t * new_node(int val, listnode_t * last){
    listnode_t * ln;
    if ( ( ln = (listnode_t*)malloc(sizeof(listnode_t)) ) == NULL ){
        perror("malloc");
        return NULL;
    }
    ln->nVal = val;
    ln->pNext = NULL;
    if ( last )
        last->pNext = ln;
    return ln;
}
 
void clear_list(listnode_t * ln){
    listnode_t * tmp;
    while ( ln ){
        tmp = ln->pNext;
        free(ln);
        ln = tmp;
    }
}
 
listnode_t * create_list(void){
    listnode_t * first, * last;
    int val;
 
    first = last = NULL;
    while ( 1 ){
        printf("> ");
        if ( scanf("%d", &val) != 1 ){
            fprintf(stderr, "Wrong input!\n");
            if ( first )
                clear_list(first);
            return NULL;
        }
        if ( ! val )
            break;
        if ( ( last = new_node(val, last) ) == NULL ){
            fprintf(stderr, "Can't add node to list!\n");
            if ( first )
                clear_list(first);
            return NULL;
        }
        if ( ! first )
            first = last;
    }
 
    return first;
}
 
void print_list(const listnode_t * ln){
    while ( ln ){
        printf("%d\n", ln->nVal * ln->nVal);
        ln = ln->pNext;
    }
}
 
int main(void){
    listnode_t * ln;
 
    printf("Enter some numbers, 0 = finish:\n");
    if ( ( ln = create_list() ) == NULL ){
        fprintf(stderr, "Can't create list!\n");
        exit(EXIT_FAILURE);
    }
    print_list(ln);
    clear_list(ln);
 
    exit(EXIT_SUCCESS);
}
doommer
1 / 1 / 0
Регистрация: 17.08.2010
Сообщений: 22
19.08.2010, 15:49  [ТС]     Всего ничего, списочек) #12
Охохо, ничего себе программулька... такая длинная) омг) надо в нее вникнуться)
oxotnik
 Аватар для oxotnik
1586 / 1063 / 33
Регистрация: 21.08.2008
Сообщений: 4,545
Записей в блоге: 1
19.08.2010, 15:52     Всего ничего, списочек) #13
Цитата Сообщение от doommer Посмотреть сообщение
Охохо, ничего себе программулька... такая длинная) омг) надо в нее вникнуться)
а тебе говорили, юзай стл
doommer
1 / 1 / 0
Регистрация: 17.08.2010
Сообщений: 22
19.08.2010, 16:36  [ТС]     Всего ничего, списочек) #14
Поясните пожалуйста, что означает этот секретный символ)) ( -> ) я что-то не понял)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.08.2010, 16:56     Всего ничего, списочек)
Еще ссылки по теме:

C++ В программе ничего не происходит
Сколько всего пропущено уроков и сколько пропущено всего по уважительной причине C++
Ничего не пишет C++ WinAPI
C++ Почему я ничего не понимаю в C++?
C++ Почему ничего не возвращается?

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

Или воспользуйтесь поиском по форуму:
easybudda
Эксперт С++
 Аватар для easybudda
9412 / 5435 / 917
Регистрация: 25.07.2009
Сообщений: 10,428
19.08.2010, 16:56     Всего ничего, списочек) #15
Цитата Сообщение от doommer Посмотреть сообщение
Поясните пожалуйста, что означает этот секретный символ)) ( -> ) я что-то не понял)
C
1
2
3
4
5
6
...
listnode_t listNode; /* объект структуры listnode_t */
listnode_t * pListNode; /* указатель на структуру listnode_t */
pListNode = &listNode; /* указывает на объект listNode */
pLinsNode->nVal = 13; /* полю nVal объекта listNode присваивается значение 13 */
pListNode->pNext = NULL; /* полю pNext объекта listNode присваивается значение NULL*/
Yandex
Объявления
19.08.2010, 16:56     Всего ничего, списочек)
Ответ Создать тему
Опции темы

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