Wenn dann noch der Übertrag dazu addiert werden sollte, müsste das ganze doch so aussehen oder hab ich das auch wieder falsch:D
public class AdditionArray {
public static int [] add (int []a, int []b){
//Voraussetzung ist, dass a und b die gleiche Länge haben
int [] c=new int [a.length+1]; //Feld für Ergebnis
int i; //Schleifenzähler
int s; //Summe der aktuell berechneten Stelle
int uebertrag = 0; //Übertrag für die nächste Stelle
for (i=0, i<c.length-1; i=i+1){
s=a**+b**+uebertrag;
c**= (s+uebertrag) % 10;
uebertrag = s/10;
}
c[c.length-1]=uebertrag;
return c;
}
public static void ausgeben (String s, int [] feld){
int i;
System.out.println (s);
for (i=feld.length-1; i>=0; i=i-1)
System.out.print (feld **);
}
public static void main (String [] args){
int anzS=50; //Anzahl der Stellen
int [] zahl1 = new int [anzS]; //1.Summand
int [] zahl2 = new int [anzS]; //2.Summand
int [] zahl3; //Ergebnis
//die beiden Summanden mit zufälligen Werten belegen
Random r= new java.util.Random ();
for (int i=0; i<anzS; i++){
zahl1**= r.nextInt (10);
zahl2**= r.nextInt (10);
}
//Ergebnis berechnen und ausgeben
zahl3=add (zahl1, zahl2);
ausgeben ("1.Summand:", zahl1);
ausgeben ("2.Summand:", zahl2);
ausgeben ("Summe:"+zahl3);
}
}```
Funktioniert das Programm bei irgendwem denn einwandfrei, bzw. kann es jemand ausprobieren, da bei mir nur Fehlermeldungen angezeigt werden. Ich soll iwie keine Main-Methode verwendet haben :/
*** Edit ***
Vielen, vielen Dank _Michael! Manchmal sieht man den Wald vor lauter Bäumen nicht :D
jetzt addierst du ihn zweimal
Kanns bei mir nicht ausprobieren. Hab kein System mit Kompiler zur Verfügung.
[quote=InfoHeldin]Wenn ich den 3.Punkt noch mit unterbringe, ist die zweite Methode aus der Aufgabenstellung boolean testArrays (int[]a,int[]b) abgehandelt oder?[/quote]Nicht ganz, ehr umgekehrt: Die Methode boolean testArrays (int[]a,int[]b)
soll genau diesen Vergleich von Methodenergebnis und erwartetem Ergebnis durchführen.
bye
TT
Hmmm, stimmt dann nehm ich ihn bei c**= (s+uebertrag) % 10; weg, sodass c**=s; oder noch was anderes? 
*** Edit ***
@Timothy_Tuckle: Ah, okay. Danke! 
Es wird nicht besser wenn man einen Fehler durch einen anderen ersetzt 
*** Edit ***
lass nur das +uebertrag weg
Ja, das ist richtig! Was muss ich machen, damit es richtig wird, biiiiiiiiitte
Ich verzweifel hier echt gerade, weil ich denk, dass ich so dumm eig. gar nicht sein kann 
*** Edit ***
Ahhh also das % 10 bleibt praktisch und dann nur das +übertrag weg!?
[quote=InfoHeldin]da bei mir nur Fehlermeldungen angezeigt werden. Ich soll iwie keine Main-Methode verwendet haben :/[/quote]Schau nochmal ganz genau auf Zeile 11, und Zeile 43 sieht auch anders aus, als die beiden davor…
bye
TT
@Timothy_Tuckle: Da beginnt ja die for-Bedingung. Muss da anstatt der Klammer ein ; oder ist da etwas anderes ?
[quote=InfoHeldin]Da beginnt ja die for-Bedingung.[/quote]Genau.
[quote=InfoHeldin;77623]Muss da anstatt der Klammer ein ; oder ist da etwas anderes ?[/quote]Vergleichst Du hier: http://www.teialehrbuch.de/Kostenlose-Kurse/JAVA/6577-for-Schleife.html
bye
TT
[QUOTE=InfoHeldin]
Ahhh also das % 10 bleibt praktisch und dann nur das +übertrag weg!?[/QUOTE]
Du weißt schon was du da machst bzw der Code?
Also stimmt das nicht wenn ich das Übertrag einfach wegnehme? Ja, weiß ich schon!
*** Edit ***
Das Programm lässt sich trotzdem nicht ausführen
Wahrscheinlich find ich den Fehler nicht 
[quote=InfoHeldin]Das Programm lässt sich trotzdem nicht ausführen
Wahrscheinlich find ich den Fehler nicht :/[/quote]Was haben denn Compiler oder Runtime zu meckern?
bye
TT
Zuerst einmal, dass ich keine Main-Methode verwende! Dann in Z.11 : not a statement; incompatible types: int cannot be converted to boolean
Z.41/42 incompatible types: java.lang.String cannot be converted to test.String --> Warum auch immer!?
?? Um was geht es jetzt?
- Addiere alle Ziffern an der Stelle n und den Übertrag
- Teile diese Summe durch 10, der Rest ist der Wert der Ziffer an Stelle n
- Das Ergebnis aus Summe / 10 ist der Übertrag für die Stelle n+1
Irgendein Fehler muss entweder der Kompiler oder die IDE falls du eine verwendest melden
*** Edit ***
[QUOTE=InfoHeldin]Zuerst einmal, dass ich keine Main-Methode verwende! Dann in Z.11 : not a statement; incompatible types: int cannot be converted to boolean
Z.41/42 incompatible types: java.lang.String cannot be converted to test.String --> Warum auch immer!?[/QUOTE]
Poste doch mal den aktuellen Code der gesamten Klasse sauber formatiert und eingerückt.
@_Michael : Das war doch jetzt zuerst auf die Summe mit Übertrag bezogen, richtig? Also c**=s%10;?
Die Fehlermeldungen habe ich davor beschrieben!
[quote=InfoHeldin]Zuerst einmal, dass ich keine Main-Methode verwende! Dann in Z.11 : not a statement; incompatible types: int cannot be converted to boolean[/quote]Auf Zeile 11 habe ich doch auch schon hingewiesen, hast Du das noch nicht berichtigt?
Der Rest sind wahrscheinlich Folgefehler, weil der Compiler wegen dem Fehler in Zeile 11 den Rest nicht mehr richtig interpretieren kann…
bye
TT
also ich hätt mir das so vorgestellt
import java.util.Scanner;
public class IntAddition {
/**
* @author pappawinni forum.byte-welt.net
*/
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Geben Sie zwei positive Integerzahlen gleicher Länge ein");
int[] zahl1 = stringtoIntArray(sc.next());
int[] zahl2 = stringtoIntArray(sc.next());;
System.out.println(Arrays.toString(zahl1));
System.out.println(Arrays.toString(zahl2));
int[] ergebnis = add(zahl1, zahl2);
System.out.println(Arrays.toString(ergebnis));
}
private static int[] stringtoIntArray(String strInt){
int j = strInt.length();
int[] out = new int[j];
for (int i = 0 ; i < j; i++) {
out**= Character.getNumericValue(strInt.charAt(j-i-1));
}
return out;
}
private static int[] add(int[] a,int[] b){
if (testArrays(a,b)){
int[] c = new int[a.length+1];
for (int i = 0; i < a.length; i++) {
int s = a**+b**+c**;
c** = s % 10;
c[i+1] = s/10;
}
return c;
}
else {
return new int[]{};
}
}
private static boolean testArrays(int[] a, int[] b){
if (a.length == b.length && a.length > 0 ){
for (int i = 0; i < a.length; i++) {
if (a**<0 || a**>9) return false;
if (b**<0 || b**>9) return false;
}
}
else{
return false;
}
return true;
}
}```
Ok…ich hoffe die Einrückungen sind einigermaßen: Man muss bei dem ganzen Mist dazu sagen, dass ich noch blutige Anfängerin in Java bin 
public class AdditionArray {
public static int [] add (int []a, int []b){
//Voraussetzung ist, dass a und b die gleiche Länge haben
int [] c=new int [a.length+1]; //Feld für Ergebnis
int i; //Schleifenzähler
int s; //Summe der aktuell berechneten Stelle
int uebertrag = 0; //Übertrag für die nächste Stelle
for (i=0, i<c.length-1; i=i+1);
s=a**+b**;
c**= s % 10;
uebertrag = s/10;
c[c.length-1]=uebertrag;
return c;
}
public static void ausgeben (String s, int [] feld){
int i;
System.out.println (s);
for (i=feld.length-1; i>=0; i=i-1)
System.out.print (feld **);
}
public static void main (String [] args){
int anzS=50; //Anzahl der Stellen
int [] zahl1 = new int [anzS]; //1.Summand
int [] zahl2 = new int [anzS]; //2.Summand
int [] zahl3; //Ergebnis
//die beiden Summanden mit zufälligen Werten belegen
Random r= new java.util.Random ();
for (int i=0; i<anzS; i++){
zahl1**= r.nextInt (10);
zahl2**= r.nextInt (10);
}
//Ergebnis berechnen und ausgeben
zahl3=add (zahl1, zahl2);
ausgeben ("1.Summand:", zahl1);
ausgeben ("2.Summand:", zahl2);
ausgeben ("Summe:"+zahl3);
}
}
Ja, passt. Hatte nur den Eindruck, dass wir von verschiedenen Dingen reden.
Also war das richtig, dass in Z.11 die Klammer durch das ; ersetzt werden muss oder?