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

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

Войти
Регистрация
Восстановить пароль
 
diagon
Higher
1929 / 1195 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
#1

int сумма char'ов - C++

18.03.2011, 14:00. Просмотров 502. Ответов 3
Метки нет (Все метки)

Дано n шестизначных чисел. Если сумма первых трех цифр не совпадает с суммой последних трех, то вывести Yes, иначе No.
Входной файл: input.txt
Первая строка-n
Следующие n строк-числа.
Выходной файл:output.txt
Пример:
input.txt
3
715068
445219
012200
output.txt
Yes
No
Yes
Это несколько упрощенное условие, оригинал тут.
Попробовал сделать так..
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
main(){
freopen("input.txt","r",stdin);
freopen("output.txt","w",stdout);
int a,i;
char p,b[6]; //p нужна для считывания мешающих "\n"
scanf("%ld%c",&a,&p);
for (i = 1; i <=a; i++) {
scanf("%c%c%c%c%c%c%c",&b[0],&b[1],&b[2],&b[3],&b[4],&b[5],&p);
if ((int)(b[0]+b[1]+b[2])!=(int)(b[3]+b[4]+b[5])) {
printf("Yes\n");
}else  printf("No\n");
}
return 0;}
Числа считываются верно, но их сумма-смесь из цифр, букв и кракозябр...
P.S. в с++ я новичек-самоучка, так что желательно поподробнее.

Добавлено через 19 минут
С условием я поспешил, нужно сделать немного по-другому, но проблема остается актуальной:
если вставить printf("ld%c%ld",(int)(b[0]+b[1]+b[2]),' ',(int)(b[3]+b[4]+b[5]));
то выводится нечто непотребное=)
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.03.2011, 14:00
Здравствуйте! Я подобрал для вас темы с ответами на вопрос int сумма char'ов (C++):

Error LNK2019: unresolved external symbol "public: __thiscall Vector<int>::Vector<int>(int,int,int)" (?0?$Vec - C++
Вот есть заголовочный файл // Заголовочный файл Vector.h #ifndef VECTOR_H #define VECTOR_H #include &lt;iostream&gt; using...

Ошибка при компиляции error: cannot convert ‘int (*)[5]’ to ‘int**’ for argument ‘1’ to ‘void Replase(int**)' - C++
#include &lt;iostream&gt; #include &lt;ctime&gt; #include &lt;iomanip&gt; #include &lt;cstdlib&gt; #define row 5 #define col 5 using namespace...

В каком случае надо начинать с int main() или с int _tmain( int argc, _TCHAR* argv[] ) и т.д.? - C++
Не понимаю, с чего начинать. Заранее спс.

[Linker Error] Unresolved external 'Sort(int near*near ,int, int) - C++
не могу понять в чем ошибка при компиляции ошибок не выдает при запуске программы - выдает эту ошибку Unresolved external 'Sort(int...

[Linker error] undefined reference to `sterling(int, int, int)' - C++
#include &lt;iostream&gt; using namespace std; int sterling(int,int,int); int sterling(int,int); int sterling(int); int main() { ...

int main() и int _tmain(int argc, _TCHAR* argv[]) - C++
При создании нового консольного приложения Microsoft Visual С++ 2010 Express создает начальный шаблон #include &quot;stdafx.h&quot; int...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Day
1158 / 963 / 57
Регистрация: 29.10.2009
Сообщений: 1,385
18.03.2011, 14:43 #2
Чтобы получить цифры числа a
C
1
2
3
4
5
 int aa = a;
 for(i=5; i>=0; i--) {
   b[i] = aa%10;
   aa /= 10;
 }
2
x1Mike7x
217 / 130 / 6
Регистрация: 06.11.2010
Сообщений: 234
18.03.2011, 14:58 #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
#include <stdio.h>
 
#define SIZE 6
 
int main()
{
    int i, k, N, X, Sl, Sr;
    scanf("%i", &N);
    for (k = 0; k < N; ++k) // 1 итерация - обработка 1 числа
    {
        scanf("%i", &X);
        Sl = Sr = 0; // Зануляем сумму цифр справа от центра и слева от центра
        for (i = 0; i < (SIZE / 2); ++i) // Цикл поиска суммы цифр, что лежат справа от центра
        {
            Sr += X % 10; // Берём последнюю цифру в сумму правых
            X /= 10; // Уменьшаем наше число, отбрасывая последний разряд
        };
        for (i = (SIZE / 2); i < SIZE; ++i) // ... и цикл для суммы левых цифр
        {
            Sl += X % 10; // Берём последнюю цифру в сумму левых
            X /= 10;
        };
        printf("%s\n", (Sr != Sl)?("YES"):("NO")); //выводим строку - если сумма левых не равна сумме правых, то "Да", если же равно, то "Нет"
    };
    return 0;
}
2
Day
1158 / 963 / 57
Регистрация: 29.10.2009
Сообщений: 1,385
18.03.2011, 15:06 #4
Предлагаю маленькую оптимизацию
C
1
2
3
4
5
for(i=0; i<SIZE; i++) {
  if (i<SIZE/2) Sr += X%10;
  else            Sl += X%10; 
  X /= 10;
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.03.2011, 15:06
Привет! Вот еще темы с ответами:

Написать функцию типа Beaty(int iA, int iB, int *pc) - C++
Задание: Написать функцию типа Beaty(int iA, int iB, int *pc); для выражения (iA+iB)/(iA*iB). Помогите решить!

Функции float average(int arrray[],int from,int to) - C++
Напишите код функции float average(int arrray,int from,int to). Возвращаемым значением функции должно быть среднее значение элементов...

Напишите функцию f(int& m1, int& m0, int N), которая воз- вращает первую и последнюю цифры двузначного натурального числа N - C++
Напишите функцию f(int&amp; m1, int&amp; m0, int N), которая воз- вращает первую и последнюю цифры двузначного натурального числа N. Решение. ...

Как понять int a(int x,int y, int z)? - C++
какое значение будет у переменной а?


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

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

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