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

написать программу подсчета нечетных чисел последовательности - C++

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.91
nadyush-princes
2 / 2 / 0
Регистрация: 08.10.2011
Сообщений: 73
08.10.2011, 19:49     написать программу подсчета нечетных чисел последовательности #1
нужно написать программу подсчета нечетных чисел последовательности, вводимой с клавиатуры, причем НЕ используя массив, а используя оператор sscanf

буду очень благодарна

 Комментарий модератора 
3.3 Запрещено создавать темы с бессмысленными названиями вроде "Помогите!", "Вопрос" и т.п.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.10.2011, 19:49     написать программу подсчета нечетных чисел последовательности
Посмотрите здесь:

C++ Написать программу, которая находит сумму всех целых нечетных чисел в диапазоне, указанном пользователя.
Помогите написать программу по последовательности чисел, не пойму смысл задачи C++
Составить программу для подсчета количества четных, нечетных и нулевых элементов матрицы C++
Написать программу для вычисления суммы факториалов всех нечетных чисел от 1 до 9. C++
Написать программу вычисления суммы квадратов четных и кубов нечетных чисел от 1 до N C++
Написать программу, вычисляющую сумму и среднее арифметическое последовательности положительных чисел C++
C++ Написать программу поиска суммы последовательности отрицательных чисел, вводимых с клавиатуры
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
08.10.2011, 20:28     написать программу подсчета нечетных чисел последовательности #2
нужно написать
А вы пытались?
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9384 / 5434 / 916
Регистрация: 25.07.2009
Сообщений: 10,428
08.10.2011, 20:31     написать программу подсчета нечетных чисел последовательности #3
C
1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
 
int main(void){
    int num, cnt = 0;
    
    while ( printf("> ") > 0 && scanf("%d", &num) == 1 )
        cnt += ( num & 1 );
    
    printf("%d odd numbers.\n", cnt);
    
    return 0;
}
KeyGen
 Аватар для KeyGen
334 / 290 / 6
Регистрация: 07.08.2011
Сообщений: 789
Записей в блоге: 1
08.10.2011, 23:06     написать программу подсчета нечетных чисел последовательности #4
Вот такая, но без sscanf(я так подозреваю это cin)
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
#include <iostream>
using namespace std;
    
int main()
{
    setlocale(LC_ALL, "rus");
    cout << "Ââîäèòå Г·ГЁГ±Г«Г* через ïðîáåë(äëÿ Г§Г*ГўГҐГёГҐГ*ГЁГї ââåäèòå #):\n";
    
    int i=0;
    int num=0;
    
    while (cin>>num){ //ÏîêГ* ââîä âåðåГ*
          if(num%2)   //Öåëî ÷èñëåГ*Г*îå Г¤еëåГ*ГЁГҐ 1 åñëè Г*ГҐ Г·ГҐГІ
          i++;
          }
          
          if(num>0)   //Åñëè ГҐГ±ГІГј ââîä öèôðû
          cout << "\nГЌГҐ Г·ГҐГІГ*ûõ Г·ГЁГ±ГҐГ«: " << i;
          else        //ÂâåäèГ*Г* # Г±Г°Г*çó(Г*ГҐ îáÿçГ*òåëüГ*Г® # ëþáîé äðóãîé Г§Г*Г*ГЄ)
          cout << "\nGoodbye";
    
    cout << "\n\n\n";
    system("PAUSE");
    return 0;
}
Миниатюры
написать программу подсчета нечетных чисел последовательности  
nadyush-princes
2 / 2 / 0
Регистрация: 08.10.2011
Сообщений: 73
09.10.2011, 22:10  [ТС]     написать программу подсчета нечетных чисел последовательности #5
Цитата Сообщение от easybudda Посмотреть сообщение
C
1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
 
int main(void){
    int num, cnt = 0;
    
    while ( printf("> ") > 0 && scanf("%d", &num) == 1 )
        cnt += ( num & 1 );
    
    printf("%d odd numbers.\n", cnt);
    
    return 0;
}
нужно использовать оператор SSCANF....

Добавлено через 1 минуту
забыла написать что нужно на Си

Добавлено через 1 минуту
Цитата Сообщение от soon Посмотреть сообщение
А вы пытались?
я пыталась, но дело в том, что я плохо понимаю чем отличается sscanf от scanf, и как его нужно использовать
Thinker
Эксперт C++
 Аватар для Thinker
4216 / 2190 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
09.10.2011, 22:17     написать программу подсчета нечетных чисел последовательности #6
nadyush-princes, вам easybudda написал что вы просили. Про sscanf вы, наверное, погорячились, такая функция есть, но она читает данные из строки. Берите алгоритм из поста 3 и радуйтесь жизни. P.S. Чтобы ввод чисел прекратить, можете на очередной запрос символ, например, ввести
castaway
Эксперт С++
4867 / 3006 / 370
Регистрация: 10.11.2010
Сообщений: 11,056
Записей в блоге: 10
Завершенные тесты: 1
09.10.2011, 22:38     написать программу подсчета нечетных чисел последовательности #7
C
1
2
3
4
5
6
7
8
#include <stdio.h>
int main() {
 char a[64];
 int n,c=0;
 while(printf("> ")&&gets(a)&&sscanf(a,"%d",&n)==1)c+=n&1;
 printf("%d odd numbers.\n",c);
 return 0;
}
Thinker
Эксперт C++
 Аватар для Thinker
4216 / 2190 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
09.10.2011, 22:43     написать программу подсчета нечетных чисел последовательности #8
lazybiz, а если понадобится sprintf, то сначала в строку запишем, а потом строку выведем на экран
castaway
Эксперт С++
4867 / 3006 / 370
Регистрация: 10.11.2010
Сообщений: 11,056
Записей в блоге: 10
Завершенные тесты: 1
09.10.2011, 22:56     написать программу подсчета нечетных чисел последовательности #9
Thinker, ты читал(а) условия задания?
nadyush-princes
2 / 2 / 0
Регистрация: 08.10.2011
Сообщений: 73
11.10.2011, 00:39  [ТС]     написать программу подсчета нечетных чисел последовательности #10
[QUOTE=Thinker;2055601]nadyush-princes, Про sscanf вы, наверное, погорячились,


скорее погорячился мой препод, а не я))))))
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
11.10.2011, 05:57     написать программу подсчета нечетных чисел последовательности #11
Цитата Сообщение от nadyush-princes
нужно написать программу подсчета нечетных чисел последовательности, вводимой с клавиатуры, причем НЕ используя массив, а используя оператор sscanf
Цитата Сообщение от nadyush-princes
нужно использовать оператор SSCANF....
для sscanf() обязательно нужен массив

Цитата Сообщение от nadyush-princes
я плохо понимаю чем отличается sscanf от scanf
они ничем не отличаются, просто берут данные из разных источников
(у sscanf() есть ограничение на перекрытие)
Thinker
Эксперт C++
 Аватар для Thinker
4216 / 2190 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
11.10.2011, 09:29     написать программу подсчета нечетных чисел последовательности #12
Цитата Сообщение от lazybiz Посмотреть сообщение
Thinker, ты читал(а) условия задания?

Не по теме:

А пытался(пыталась) понять абсурдность задания?

Tpyn_CTpayca
0 / 0 / 0
Регистрация: 31.08.2011
Сообщений: 3
05.11.2011, 14:19     написать программу подсчета нечетных чисел последовательности #13
Ну вот кстати я бы не сказал, что это абсурдно, но только тут нужно дополнительно знать в каком формате вводятся числа(например ели каждое число состоит железно из 2/3/4/../n знаков то все замечательно можно организовать), если же все-таки требуется какое-то эзотерическое решение для задачи(главное чтобы по условию и никак по-другому), то можно конечно сделать так:

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 <stdio.h>
#include <string.h>
#include <stdlib.h>
 
#define MaxLen 1025
 
int OddSum(char s[]);
 
int main()
{
    char s[MaxLen];
    gets(s);
    long sum = OddSum(s);
    printf("%d",sum);
    return 0;
}
 
int OddSum(char str[])
{
    char s[MaxLen], buf[8];
    strcpy(s, str);
    int a = 0, buflen = 0, i = 0, j = 0;
    long sum = 0;
    int slen = strlen(s);
    while(i < slen)
    {
        sscanf(s, "%s", &buf);
        a = atoi(buf);
        sum += (a & 1) ? a : 0;
        for (j = i; j < strlen(buf) + i; ++j) s[j] = ' ';
        i = ++j;
    }
    return sum;
}
Собственно та еще бредятина))) с дичайшими издержками по времени исполнения и использованию памяти мне в универе преподы за такое голову бы снесли =) но зато со sscanf' ами)

Добавлено через 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
30
31
32
33
34
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
 
#define MaxLen 1025
 
int OddNum(char s[]);
 
int main()
{
    char s[MaxLen];
    gets(s);
    long num = OddNum(s);
    printf("%d",num);
    return 0;
}
 
int OddNum(char str[])
{
    char s[MaxLen], buf[8];
    strcpy(s, str);
    int a = 0, buflen = 0, i = 0, j = 0;
    long num = 0;
    int slen = strlen(s);
    while(i < slen)
    {
        sscanf(s, "%s", &buf);
        a = atoi(buf);
        if (a & 1) ++num;
        for (j = i; j < strlen(buf) + i; ++j) s[j] = ' ';
        i = ++j;
    }
    return num;
}
только это выглядит еще абсурднее.
Кстати, Надя, а у тебя есть ася или хотя бы e-mail, с тобой можно познакомиться?

Добавлено через 29 минут
Цитата Сообщение от accept Посмотреть сообщение
для sscanf() обязательно нужен массив


они ничем не отличаются, просто берут данные из разных источников
(у sscanf() есть ограничение на перекрытие)
Я так думаю, что про массив имелось в виду, что нельзя парсить строку в массив стандартными срествами scanf/sscanf там кстати такое тоже есть. P.S. кому не нравится [] могут объявлять через указатель и работать с адресной арифметикой.
nadyush-princes
2 / 2 / 0
Регистрация: 08.10.2011
Сообщений: 73
05.11.2011, 14:26  [ТС]     написать программу подсчета нечетных чисел последовательности #14
Tpyn_CTpayca,
Tpyn_CTpayca, 555422511 5nadya_evd5@mail.ru
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
05.11.2011, 17:15     написать программу подсчета нечетных чисел последовательности #15
Цитата Сообщение от Tpyn_CTpayca
Я так думаю, что про массив имелось в виду, что нельзя парсить строку в массив стандартными срествами scanf/sscanf там кстати такое тоже есть.
Цитата Сообщение от nadyush-princes
нужно написать программу подсчета нечетных чисел последовательности, вводимой с клавиатуры, причем НЕ используя массив
скорее всего, ограничение относится к последовательности
чтобы её не сохраняли перед обработкой
Tpyn_CTpayca
0 / 0 / 0
Регистрация: 31.08.2011
Сообщений: 3
05.11.2011, 21:17     написать программу подсчета нечетных чисел последовательности #16
Как-то странно это все. Либо препод на кануне что-то не то курил, либо мы тут все поголовно обдолбанные, ну или как 3й вариант - эффект "испорченного телефона". Я просто не знаю ни одного рационального решения где тут можно прикрутит sscanf и "не использовать массив". Вообще я в таких случаях, если дана строка, всегда просто бегал по ней индексатором и выделял то, что требуется (кстати в данном случае я бы даже стал делать это задом наперед, чтобы не выполнять лишних операций над данными, которые под условие не попадают). P.S. а в каком универе так хорошо нынче учат, что студенты по таким пустякам на форум бегут?

Добавлено через 1 час 41 минуту
Полазал в интернетах, подумал, и мне кажется, что правильнее всего это делается так:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <clocale>
 
int main()
{
    setlocale(LC_CTYPE, "Russian");
    int n = 0, c = 0, b = 0, f = 1;
    c = getche();
    while(c != 13)
    {
        if (c == 32) if (b & 1) ++n;
        b = c;
        c = getche();
    }
    if (b & 1) ++n;
    printf("Количество нечетных членов: %d\n", n);
    system("pause");
    return 0;
}
но тут нет ни scanf ни sscanf тем более =)))
то же самое можно реализовать с помощью ассемблера(великого

Не по теме:

и ужасного

), но там тоже нету сканэфов... Еще пытался сделать с помощью Си, запихивая символы строки обратно в буфер клавиатуры(ф-ия есть такая ungetch(), чтобы потом читать их scanf(!!! его же просят)) ))) но как выяснилось, что так scanf не обмануть. Вероятно подмену можно сделать тем же самым упомянутым ассемблером(но в системах до NT, тк в более поздних нельзя открыто писать в порты, хотя можно использовать WDF и написать свой dll, делающий это), такие дела. Вероятно нет других способов сделать требуемое с использованием одних лишь scanf, без массивов(!!!) и завершающего символа для числовой последовательности.

Добавлено через 14 минут
В 3м посте модератор предложил хороший вариант решения, но он с многострочным вводом через enter - это неинтересно.
nadyush-princes
2 / 2 / 0
Регистрация: 08.10.2011
Сообщений: 73
06.11.2011, 10:31  [ТС]     написать программу подсчета нечетных чисел последовательности #17
люди я уже давным давно написала))))))))))))
C
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
int main (int argc, char* argr[])
{
    int i,s,a;
    for (i=1; i<argc; i++)
    {
        sscanf (argr[i], "%d",&a);
        s+=a*(a%2);
    }
    printf ("Сумма нечетных чисел числовой последовательности равна %d\n",s);
    scanf("%d");
    return 0;
}
Вот это как должно выглядеть.... если я неправильно написала задание - простите)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.11.2011, 12:17     написать программу подсчета нечетных чисел последовательности
Еще ссылки по теме:

C++ Написать программу перестановки чисел последовательности по заданному алгоритму
C++ Написать программу поиска произведения последовательности положительных чисел
Рекурсивная функция подсчета количества простых чисел в последовательности C++
Макрос для подсчета четных и нечетных чисел C++
Написать программу определения максимального числа в последовательности целых положительных чисел C++

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

Или воспользуйтесь поиском по форуму:
Tpyn_CTpayca
0 / 0 / 0
Регистрация: 31.08.2011
Сообщений: 3
07.11.2011, 12:17     написать программу подсчета нечетных чисел последовательности #18
Ах вот оно что =)
Yandex
Объявления
07.11.2011, 12:17     написать программу подсчета нечетных чисел последовательности
Ответ Создать тему
Опции темы

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