Devashree Sen Ответов: 3

Сумма цифр в целочисленном массиве


There will be an array of elements. Add each digit of element and print the sum of each element.    
Input:
32
11
Expected Output:
5
2
I am getting output as 7. How can i solve this?  


Что я уже пробовал:

import java.util.Scanner;

public class Main

{

    public static void main(String args[])

    {

        int n, sum = 0;

        Scanner sc = new Scanner(System.in);
        int size=sc.nextInt();
        System.out.print("Enter the number:");
        int a[]= new int[size];
        for(int i=0;i<size;i++)
        {
            a[i]=sc.nextInt();
        }
        for(int i=0;i<size;i++)
        {
         for(int j=0;j<size;j++)
         {
        while(a[j] > 0)

        {

            n = a[j] % 10;

            sum = sum + n;

            a[j] = a[j] / 10;


        }
         }

        }

        System.out.println("Sum of Digits:"+sum);
        }
}

3 Ответов

Рейтинг:
12

Richard MacCutchan

Подумайте о логических шагах, которые вам нужно выполнить:
- прочтите следующий номер
- установите сумму равную нулю
- вычислите сумму цифр во входном номере
- выведите сумму
- повторите для следующего входа


Devashree Sen

Огромное спасибо.

CPallini

5.

Рейтинг:
0

Richard Deeming

Это просто более простая версия вашего предыдущего вопроса:
Сумма цифр в четных и нечетных местах массива[^]


CPallini

5.

Рейтинг:
0

Patrice T

Цитата:
Ожидаемый Результат:
5
2
Я получаю выход как 7. Как я могу решить эту проблему?

Ваш фактический результат-это сумма ожидаемого результата.
Просто предположение:
- вы печатаете результат не в том месте.
- вы забыли сбросить сумму до 0.
-----
Совет: Научитесь правильно делать отступы в вашем коде, это покажет его структуру и поможет чтению и пониманию. Это также помогает выявлять структурные ошибки.
import java.util.Scanner;
public class Main
{
    public static void main(String args[])
    {
        int n, sum = 0;

        Scanner sc = new Scanner(System.in);
        int size=sc.nextInt();
        System.out.print("Enter the number:");
        int a[]= new int[size];
        for(int i=0;i<size;i++)
        {
            a[i]=sc.nextInt();
        }
        for(int i=0;i<size;i++)
        {
            for(int j=0;j<size;j++)
            {
                while(a[j] > 0)
                {
                    n = a[j] % 10;
                    sum = sum + n;
                    a[j] = a[j] / 10;
                }
            }
        }
        System.out.println("Sum of Digits:"+sum); // wrong place
    }
}

Стиль отступа - Википедия[^]

Профессиональные редакторы программистов имеют эту функцию и другие, такие как сопоставление скобок и подсветка синтаксиса.
Блокнот++ Главная Страница[^]
личные[^]


CPallini

5.

Patrice T

Спасибо.