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

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

Войти
Регистрация
Восстановить пароль
 
Sh@dow777
12 / 12 / 3
Регистрация: 10.12.2013
Сообщений: 674
#1

Деление на 6 - C++

25.12.2013, 16:07. Просмотров 457. Ответов 10
Метки нет (Все метки)

Люди, не могу понять, неужели я такой никчема?

Задача:
Заданы N целых чисел. Определить сумму и количество тех чисел, которые являются положительными и при этом делятся на 6 без остатка.
Input

Первая строка стандартного потока ввода содержит количество тестов Т.

Каждый тест состоит из двух строк. Первая строка - количество чисел N (0 < N ≤ 100). Во второй строе заданы N целых чисел, разделенных пробелом, значения которых по модулю не превышают 10000.
Output

Для каждого теста в отдельную строку выведите сначала количество указанных чисел и через пробел их сумму.

Вот мой первый код
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 <stdio.h>
 
int main()
{
    int T,count,i,n,s,k,p;
 
    scanf("%d", &T);
 
    for(count = 1;count <= T;count++){
        scanf("%d", &n);
        
        s = 0;
        k = 0;
 
        for(i = 0; i < n;i++){
            scanf("%d", &p);
            if(!(p % 6)){
                s += 1;
                k += p;
            }
        }
        printf("%d ", s);
        printf("%d\n", k);
    }
                
    return 0;
}
Система говорит неправильный ответ.

Вот второй вариант

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 <stdio.h>
 
int main()
{
    int T,count,i,n,s,k;
 
    scanf("%d", &T);
 
    for(count = 1;count <= T;count++){
        scanf("%d", &n);
        int *a = new int[n];
 
        s = 0;
        k = 0;
 
        for(i = 0;i < n;i++){
            scanf("%d", &a[i]);
            if(!(a[i]%6)){
                s += 1;
                k += a[i];
            }
        }
        printf("%d ", s);
        printf("%d\n", k);
    }
 
    return 0;
}
Тоже неправильный ответ. А у себя проверяю - вроде все правильно. В чем проблема?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.12.2013, 16:07
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Деление на 6 (C++):

Задача про деление яблок (целочисленное деление) - C++
Ребят,помогите с задачкой,как написать input.txt и output.txt? Помогите решить задачу. C++. Заранее спасибо! N школьников делят K яблок...

Деление - C++
Надо разделить на два заданное четное натуральное число с количеством цифр меньше 100. Нужно использовать не арифметические, а символьные...

Деление в С++ - C++
Добрый день :) Написал программу, которая будет вычислять винрейт в дота 2: int win; int lose; int all(0); double winrate(0.0); ...

Деление на 0 - C++
задача: Условие Имеется N человек и матрица А размера N´N. Элемент A матрицы равен 1, если человек i знаком с человеком j (если...

деление на 0 - C++
у меня есть код задачи .. помогите пожалуйста.. надо переделать код, чтобы в 14 строчке (case '/': cout&lt;&lt;&quot;4astka\t&quot;&lt;&lt;b/c&lt;&lt;endl; break;)...

Деление - C++
#include &lt;iostream&gt; #include &lt;cstdlib&gt; #include &lt;conio.h&gt; using namespace std; char *fortunes = {&quot;Its ok\n&quot;, &quot;Very good\n&quot;,...

10
NurlashKO
87 / 87 / 14
Регистрация: 07.10.2012
Сообщений: 145
25.12.2013, 16:19 #2
Цитата Сообщение от Sh@dow777 Посмотреть сообщение
которые являются положительными
(-12) % 6 = 0...

Добавлено через 14 секунд
Цитата Сообщение от Sh@dow777 Посмотреть сообщение
которые являются положительными
(-12) % 6 = 0...
0
Sh@dow777
12 / 12 / 3
Регистрация: 10.12.2013
Сообщений: 674
25.12.2013, 16:49  [ТС] #3
Сделал так:

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 <stdio.h>
 
int main()
{
    long long T,count,i,n,s,k,p;
 
    scanf("%lld", &T);
 
    for(count = 1;count <= T;count++){
        scanf("%lld", &n);
        
        s = 0;
        k = 0;
 
        for(i = 0; i < n;i++){
            scanf("%lld", &p);
            if(!(p % 6) && p > 0){
                s += 1;
                k += p;
            }
        }
        printf("%lld ", s);
        printf("%lld\n", k);
    }
                
    return 0;
}
все равно не верно.

Добавлено через 25 минут
Ну так кто-нибудь мне поможет?
0
Genn55
368 / 215 / 41
Регистрация: 26.12.2012
Сообщений: 708
25.12.2013, 16:52 #4
Переменные не инициализированы.В них содержится цифровой мусор.Его вы и получаете в результате.
C++
1
long long T,count,i,n,s,k,p;
C++
1
long long T = 5,count,i,n = 10,s,k,p = 9;
что то получите
0
Sh@dow777
12 / 12 / 3
Регистрация: 10.12.2013
Сообщений: 674
25.12.2013, 16:58  [ТС] #5
Дело в том, что в программе я ввожу все переменные с клавиатуры. У меня программа компилируется нормально. И вроде выводит правильный результат. А система пишет неправильный ответ.
0
valeriikozlov
Эксперт С++
4670 / 2496 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
25.12.2013, 17:37 #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 <stdio.h>
 
int main()
{
    int T,count,i,n,s,k,p;
 
    scanf("%d", &T);
 
    for(count = 1;count <= T;count++){
        scanf("%d", &n);
        
        s = 0;
        k = 0;
 
        for(i = 0; i < n;i++){
            scanf("%d", &p);
            if(!(p % 6) && p > 0){
                s += 1;
                k += p;
            }
        }
        printf("%d ", s);
        printf("%d\n", k);
    }
                
    return 0;
}
0
Genn55
368 / 215 / 41
Регистрация: 26.12.2012
Сообщений: 708
25.12.2013, 17:46 #7
Потому как ни один цикл не завершается.Если правильно расставить скобки.
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 <stdio.h>
#include <iostream>
int main()
{
    long long T,count,i,n,s,k,p;
 
    //scanf("%lld", &T);
std::cin >>T;
std::cin >>n;
    for(count = 1;count <= T;count++)
    {
        //scanf("%lld", &n);
        s = 0;
        k = 0;
        std::cout << "  "<<s<< "   "<<k << "\n";
    }
     //std::cout << "  "<<s<< "   "<<k << "\n";
     std::cin >>p;
        for(i = 0; i < n;i++)
        {
            //scanf("%lld", &p);
            if(!(p % 6) && p > 0)
            {
                s += 1;
                k += p;
            }
            std::cout << "  "<<s<< "   "<<k << "\n";
        }
        //std::cout << "  "<<s<< "   "<<k << "\n";
        //printf("%lld ", s);
       // printf("%lld\n", k);
   
 
    return 0;
}
оба цикла работают.
0
Sh@dow777
12 / 12 / 3
Регистрация: 10.12.2013
Сообщений: 674
25.12.2013, 17:51  [ТС] #8
Цитата Сообщение от valeriikozlov Посмотреть сообщение
а у меня вот так все проходит:
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 <stdio.h>
 
int main()
{
    int T,count,i,n,s,k,p;
 
    scanf("%d", &T);
 
    for(count = 1;count <= T;count++){
        scanf("%d", &n);
        
        s = 0;
        k = 0;
 
        for(i = 0; i < n;i++){
            scanf("%d", &p);
            if(!(p % 6) && p > 0){
                s += 1;
                k += p;
            }
        }
        printf("%d ", s);
        printf("%d\n", k);
    }
                
    return 0;
}
У меня тоже все проходит. А у системы проверки не проходит. В чем прикол?

Добавлено через 3 минуты
Цитата Сообщение от Genn55 Посмотреть сообщение
Потому как ни один цикл не завершается.Если правильно расставить скобки.
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 <stdio.h>
#include <iostream>
int main()
{
    long long T,count,i,n,s,k,p;
 
    //scanf("%lld", &T);
std::cin >>T;
std::cin >>n;
    for(count = 1;count <= T;count++)
    {
        //scanf("%lld", &n);
        s = 0;
        k = 0;
        std::cout << "  "<<s<< "   "<<k << "\n";
    }
     //std::cout << "  "<<s<< "   "<<k << "\n";
     std::cin >>p;
        for(i = 0; i < n;i++)
        {
            //scanf("%lld", &p);
            if(!(p % 6) && p > 0)
            {
                s += 1;
                k += p;
            }
            std::cout << "  "<<s<< "   "<<k << "\n";
        }
        //std::cout << "  "<<s<< "   "<<k << "\n";
        //printf("%lld ", s);
       // printf("%lld\n", k);
   
 
    return 0;
}
оба цикла работают.
Извините, но у меня программа работает отлично. Все циклы завершаются. А система все равно выводит неправильный ответ.
0
Dani
1393 / 637 / 57
Регистрация: 11.08.2011
Сообщений: 2,282
Записей в блоге: 2
Завершенные тесты: 1
25.12.2013, 18:01 #9
Цитата Сообщение от Sh@dow777 Посмотреть сообщение
А у системы проверки не проходит. В чем прикол?
Какая система?
0
Genn55
368 / 215 / 41
Регистрация: 26.12.2012
Сообщений: 708
25.12.2013, 18:02 #10
У меня выдает это.С вашим кодом кучу варнингов и вообще ничего и не завершается.
0
Миниатюры
Деление на 6  
Sh@dow777
12 / 12 / 3
Регистрация: 10.12.2013
Сообщений: 674
25.12.2013, 18:10  [ТС] #11
изменил строку
C++
1
if(!(p % 6) && p > 0){
на
C++
1
if(p % 6 == 0 && p > 0){
и все заработало.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.12.2013, 18:10
Привет! Вот еще темы с ответами:

деление на 0 - C++
столкнулся с проблемой деления на 0. нужно сделать так. чтобы программа не делила на 0. по средством switch не получалась. вот код ...

Деление - C++
Оригинал условия тут Входной файл input.txt: Первая строка-количество фирм Вторая строка-доходы фирм Третья строка-налог на фирмы(в...

Деление на 41 - C++
Надо сделать программу на C, которая печатает все пятизначные числа, которые делится из 41 и которых циклично переставляя полученные числа...

Деление - C++
Оригинальное задание звучит так: Вот, что я наваял: //The program divides the first number by the second one. //It should...


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

Или воспользуйтесь поиском по форуму:
11
Yandex
Объявления
25.12.2013, 18:10
Ответ Создать тему
Опции темы

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