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

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

Восстановить пароль Регистрация
 
Sh@dow777
11 / 11 / 3
Регистрация: 10.12.2013
Сообщений: 645
25.12.2013, 16:07     Деление на 6 #1
Люди, не могу понять, неужели я такой никчема?

Задача:
Заданы 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;
}
Тоже неправильный ответ. А у себя проверяю - вроде все правильно. В чем проблема?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.12.2013, 16:07     Деление на 6
Посмотрите здесь:

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

Добавлено через 14 секунд
Цитата Сообщение от Sh@dow777 Посмотреть сообщение
которые являются положительными
(-12) % 6 = 0...
Sh@dow777
11 / 11 / 3
Регистрация: 10.12.2013
Сообщений: 645
25.12.2013, 16:49  [ТС]     Деление на 6 #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 минут
Ну так кто-нибудь мне поможет?
Genn55
341 / 188 / 37
Регистрация: 26.12.2012
Сообщений: 658
25.12.2013, 16:52     Деление на 6 #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;
что то получите
Sh@dow777
11 / 11 / 3
Регистрация: 10.12.2013
Сообщений: 645
25.12.2013, 16:58  [ТС]     Деление на 6 #5
Дело в том, что в программе я ввожу все переменные с клавиатуры. У меня программа компилируется нормально. И вроде выводит правильный результат. А система пишет неправильный ответ.
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
25.12.2013, 17:37     Деление на 6 #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;
}
Genn55
341 / 188 / 37
Регистрация: 26.12.2012
Сообщений: 658
25.12.2013, 17:46     Деление на 6 #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;
}
оба цикла работают.
Sh@dow777
11 / 11 / 3
Регистрация: 10.12.2013
Сообщений: 645
25.12.2013, 17:51  [ТС]     Деление на 6 #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;
}
оба цикла работают.
Извините, но у меня программа работает отлично. Все циклы завершаются. А система все равно выводит неправильный ответ.
Dani
1263 / 621 / 50
Регистрация: 11.08.2011
Сообщений: 2,236
Записей в блоге: 2
Завершенные тесты: 1
25.12.2013, 18:01     Деление на 6 #9
Цитата Сообщение от Sh@dow777 Посмотреть сообщение
А у системы проверки не проходит. В чем прикол?
Какая система?
Genn55
341 / 188 / 37
Регистрация: 26.12.2012
Сообщений: 658
25.12.2013, 18:02     Деление на 6 #10
У меня выдает это.С вашим кодом кучу варнингов и вообще ничего и не завершается.
Миниатюры
Деление на 6  
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.12.2013, 18:10     Деление на 6
Еще ссылки по теме:

деление на 0 C++
Деление на 1 C++
C++ Деление

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

Или воспользуйтесь поиском по форуму:
Sh@dow777
11 / 11 / 3
Регистрация: 10.12.2013
Сообщений: 645
25.12.2013, 18:10  [ТС]     Деление на 6 #11
изменил строку
C++
1
if(!(p % 6) && p > 0){
на
C++
1
if(p % 6 == 0 && p > 0){
и все заработало.
Yandex
Объявления
25.12.2013, 18:10     Деление на 6
Ответ Создать тему
Опции темы

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