Frage von JayTSX, 39

Wie prüfe ich ob das addieren von n zahlen 20 ergibt?

Hallo! ich möchte in c# mit maximal 10 variablen die einen ganzzahligen wert zwischen 1 und 20 haben auf 20 kommen wie mach ich das?

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von safur, 22

Ich würde die in ein Array schreiben und dann mit For-Schleife durchlaufen.

int z[10];      //Hier sind die Zahlen drin
int sum=0;   //Gesamtsumme
for (int i=0;i<10;i++){
  sum += z[i];
}

if(sum==20){
  //yeah
}else{
  //was auch immer
}

Kommentar von JayTSX ,

geht das auch mit bereits vorhandenen variablen?

Kommentar von safur ,

1) Muss die Summe von genau 10 Zahlen die 20 ergeben?
2) Muss die Summe nur durch 1-n Zahlen erreicht werden?

Ich habe es wie 1) verstanden.

Mit vorhandenen Zahlen würdest du das halt dann so schreiben..

int erg=0;

erg=a+b+c+d+e+f+g+h+i+j;
if(erg==20){
  //yeah
}else{
  //
}

Kommentar von JayTSX ,

es ist wie in 2) beschrieben

Kommentar von safur ,

int z[10];      //Hier sind die Zahlen drin
int sum=0;   //Gesamtsumme
for (int i=0;i<10;i++){
  sum += z[i];
  if(sum>=20){break;}  //20 erreicht
}

Hier würdest du wieder mit der Forschleife durchflitzen bis du 20 erreicht hast.

Kommentar von JayTSX ,

ah ok gut danke- sorry aber mit arrays kenn ich mich nicht mehr so aus wie kriege ich da die zahlen rein??

Kommentar von safur ,

In C#?`

int[] array3 = { 1, 2, 3, 4, 5, 6 };
https://msdn.microsoft.com/de-de/library/9b9dty7d.aspx

Du kannst auch den Ansatz von KnorxyThieus folgen

Kommentar von JayTSX ,

ja in c# also:

int[] z = { box1, box2, box3,                              box4, box5, box6,  			    box7, box8, box9, 			    box10 };                           int sum = 0;

                for (int i = 0; i < 10; i++)

                {

                    sum += z[i];

                    if (sum >= 20) { break; }

                }


oder wie weil das funktioniert nicht so ganz

Kommentar von safur ,

Was macht er denn bzw. was sagt er? Du hast auch keine Ausgabe definiert. Er flitzt nun bestimmt durch bis zur 20 und hüpft mit break aus der Schleife.

Antwort
von MarcelDavis321, 15

probier es doch mal andersrum. Rechne 20 minus eine zahl nach der anderen. Wenn am ende 0 über bleibt weisste bescheid

Antwort
von KnorxyThieus, 5
bool TestNumbers(IEnumerable<int> numbers)
{
   if (numbers.Count() > 10)
      throw new ArgumentExceptions("Zu viele Zahlen!");
   
   var sum = numbers.Sum();
   return 1 <= sum && sum <= 20;
}

Schaffst du es, die Werte selber einzulesen?

Bei Fragen fragen ... :)

Keine passende Antwort gefunden?

Fragen Sie die Community