Array Ausgabe
-
Hallo zusammen,
beim Ausführung folgender Code (Siehe unter), bekomme ich in meinem Array Liste char Liste[] = {1,21,333,433,54,12,33,45,56} den Wert 333 und 433 nicht auf dem Bildschirm gezeigt, sondern negative Werte.
1- Wie kann ich, wenn ich in der main-Methode die Position i und j initialisiert habe, genau die Werte an der Stelle i bis j bekommen. (z.B: Wenn ich int i=1 und j=5 initialisiere, dann sollte ich folgende Werte bekommen: 21 333 433 54 12 ?
2- Wie kann ich die Werte an der Stelle i bis j in einem Array speichern und diese dann später mit return ausgeben?/* Array_Cut.c */
#include <stdio.h>
#include <stdlib.h>int Start_Cut; //Anfangbereich
int End_Cut; //Endbereich
char GetArrayCut ( char *Buffer, int Start , int End)
{
int k = ( End - Start ) + 1;
char Ergebnis[k];
int i ;
for (i = Start ; i <= End; i++ )
Ergebnis[i] = Buffer[i];
//return Ergebnis[i];
for (i = Start; i<= End; i++)
printf("%d ", Ergebnis[i]);
printf ("\n");
}
int main ()
{
Liste char Liste[] = {1,21,333,433,54,12,33,45,56};
char i = 1 ;
char j = 4;
char *result = GetArrayCut ( Liste , i , j ) ;}
Besten Dank.
-
iverson702 schrieb:
Hallo zusammen,
beim Ausführung folgender Code (Siehe unter), bekomme ich in meinem Array Liste char Liste[] = {1,21,333,433,54,12,33,45,56} den Wert 333 und 433 nicht auf dem Bildschirm gezeigt, sondern negative Werte.Das liegt daran das du hier Integerwerte in ein char Array packst.
Die Zahlen 333 und 433 sind nicht in der Ascii Tabelle vorhanden und aus diesem Grund bekommst du hier komische Werte raus.
Wenn es sich hier nur um Zahlen handelt, dann nutze ein int oder long Array.iverson702 schrieb:
1- Wie kann ich, wenn ich in der main-Methode die Position i und j initialisiert habe, genau die Werte an der Stelle i bis j bekommen. (z.B: Wenn ich int i=1 und j=5 initialisiere, dann sollte ich folgende Werte bekommen: 21 333 433 54 12 ?
Wie wäre es mit einer ganz einfachen for schleife?!
for(int iStart=i; iStart <= j; iStart++) array[iStart];
iverson702 schrieb:
2- Wie kann ich die Werte an der Stelle i bis j in einem Array speichern und diese dann später mit return ausgeben?
Mach ein zweites Array und weise diesem die Werte von i bis j zu...