Program pobierający liczby i obliczający sumę

0

Uczę się od podstaw programowania w C#.
Robiąc treningi piszę program:

Napisz program pobierający od użytkownika liczby całkowite. Program ma pobierać te
liczby do czasu, gdy użytkownik wprowadzi wartość 0 (zero). Wynikiem działania programu
ma być informacja o sumie wprowadzonych przez użytkownika liczb.


            double suma = 0;
            int  x;
            Console.WriteLine("Podaj x");
            x = Convert.ToInt16(Console.ReadLine());

            for (int i = 1; i <= x; i++)
            {
                if (x == 0)
                {
                    break;
                }
                else
                {
                    suma = suma + (x % 10);
                    x = x / 10;
                    Console.Write("Suma wynosi {0} ", suma);
                    continue;
                }
                Console.WriteLine();
            }
         Console.ReadKey();

Bardzo proszę o feedback, czy program dobrze napisane, czy jakieś błędy i możliwości poprawy

0

Ten program robi zupełnie co innego. Czyli jest źle napisany. Nie realizuje swojego zadania. Przeczytaj zadanie jeszcze raz i napisz program od początku.

0

Ale tu nie ma co podpowiadać.

  1. Napisz program, który pobiera od użytkownika liczbę całkowitą.
  2. Potem zmień go tak, żeby pobierał tą liczbę do momentu jak użytkownik wciśnie 0.
  3. Potem zmień go tak, żeby na końcu podać sumę wszystkich wpisanych przez użytkownika liczb.

Jedyne, co mogę jeszcze zrobić, to napisać ten program za Ciebie, ale chyba nie o to chodzi, nie?

0

a teraz ? sposób obliczania sumy jest napisany prawidłowo ?

double suma = 0;
            int x;

          for(int i = 1; i <= 100; i++)
          {
                Console.WriteLine("Podaj x");
                x = Convert.ToInt16(Console.ReadLine());
                if (x == 0)
                {
                    break;
                }
                else
                {
                    suma = suma + (x % 10);
                    x = x / 10;
                    Console.Write("Suma wynosi {0} ", suma);
                }

                Console.WriteLine();
            }
         Console.ReadKey();
1

Dodawać niby dodaje, ale po wpisaniu 0 powinien raczej wyświetlić sumę (czy powinien wypisywać ją co chwila to raczej wątpię).
Podejrzewam, że autorowi/-om chodziło o coś bardziej zbliżonego do zadania z jednego z dawnych kursów c++:

#include<iostream>
using namespace std;
int main()
{
int sum = 0, number;

while (number !=0 ) {
	cout<<"Podaj liczbe:"<<endl;
	cin>>number;
	sum += number;
if (number == 0) cout<<"Suma liczb: "<<sum<<endl;
	}

return 0;
}
0
static void Main(string[] args)
        {
            int suma = 0, a, iloscLiczb = 0;
            do
            {
                Console.WriteLine("Podaj dodatni wykladnik:");
                a = int.Parse(Console.ReadLine());
                suma += a;
                iloscLiczb++;
                Console.Clear();
            } while (a != 0);
            Console.WriteLine("Podałeś {0} liczb, Suma wpisanych liczb = {1}",
                iloscLiczb, 
                suma);
            Console.ReadLine();
        }

1 użytkowników online, w tym zalogowanych: 0, gości: 1