C-Programm funktioniert nicht?

3 Antworten

Vom Fragesteller als hilfreich ausgezeichnet
  1. Der Fragetitel ist dazu da, um eine sinnvolle Frage hineinzuschreiben, die kurz zusammenfasst, um welches Problem es geht. Das sollte doch eigentlich nicht so schwierig zu verstehen sein.
  2. Formatiere deinen Code.
  3. Das Programm kann wohl kaum kompilieren, denn die Signatur von ausgabe wird nicht erfüllt.
  4. Wenn das Array 6 Elemente beinhalten kann, liegt der größte Index bei 5, da die Zählung bei 0 beginnt. All deine Zugriffe auf den Index 6 können also nicht stimmen.
  5. Der Vergleich mit -1 innerhalb der ersten Schleife macht m. E. keinen Sinn.
  6. In deinen Ausgaben (printf) fehlt manchmal ein Format Specifier (%d).
  7. Der Format Specifier für die dritte Ausgabe müsste %lu lauten (long unsigned int).
  8. An ausgabe übergibst du ein Array, erwartet wird aber ein int. Da du den Parameter in der Funktion jedoch wieder wie ein Array behandelst, kann man davon ausgehen, dass die Signatur falsch ist - du müsstest einen int-Pointer als Parametertyp definieren (int*).

Ich hatte mal ein Belastungs-EKG. Das war leichter zu lesen als das. :D

Hier gibt es die Möglichkeit Text in eine Code-Box zu schreiben. Nutze sie junger Padawan!

5
#include <stdio.h>

void ausgabe(int, int);

int main(void)

{

int element[6];

int max;

int min;


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

{

if (element[6] == -1)

{

break;

}


printf("Geben Sie eine ganazzahlige Zahl ein:");

scanf("%i", &element[i]);


}

max = element[6];

min = element[6];


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

{

if(max < element[i])

max = element[i];

else

if(element[i] < min)

min = element[i];

}

printf("Maximum :\n", max);

printf("Minimum :\n", min);

printf("Elementanzahl : %d\n", sizeof(element) / sizeof(int));

printf("Feldinhalt :");

ausgabe(element,6);

return 0;

}

void ausgabe(intb,int groesse)

{ 

int i;

for (i = 0; i < groesse; i++)

{

printf(" %4d", b[i]);

}

printf("\n");

}


Kann mir jemand sagen was ich noch zu min und max ergänzen muss das ich auch min und max bekomme.
 mienst du so dieses <> symbol
0
44
@JustMEYourDad

Ordentlich formatieren bedeutet, dass man Code einrückt und überflüssige Leerzeilen entfernt. Das ist hier problemlos möglich. Umso weniger du potenziellen Antwortgebern entgegenkommst, umso weniger wirst du mit Hilfe rechnen können.

0
5
@regex9
#include <stdio.h>

void ausgabe(int, int);

int main(void)
{
  int element[6];
  int max;
  int min;

for(int i = 0; i <=5; i++)
{
    if (element[6] == -1)
{break;
}
  printf("Geben Sie eine ganazzahlige Zahl ein:");
  scanf("%i", &element[i]);
}

max = element[6];
min = element[6];

for(int i = 0; i < 6; i++)
{
    if(max < element[i])
    max = element[i];
    else
    if(element[i] < min)
    min = element[i];
}
  printf("Maximum :\n", max);
  printf("Minimum :\n", min);
  printf("Elementanzahl : %d\n", sizeof(element) / sizeof(int));
  printf("Feldinhalt :");
  ausgabe(element,6);
return 0;
}

void ausgabe(intb,int groesse)
{ 
  int i;
  for (i = 0; i < groesse; i++)
{
  printf(" %4d", b[i]);
}
  printf("\n");
}


Kann mir jemand sagen was ich noch zu min und max ergänzen muss das ich auch min und max bekomme.

Meinst du so
0

Sorry, so will ich das nicht lesen, das ist echt unangenehm. Kopiere Deinen Code doch bitte mal hier rein und schicke den Link als Kommentar.

5
#include <stdio.h>

void ausgabe(int, int);

int main(void)

{

int element[6];

int max;

int min;


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

{

if (element[6] == -1)

{

break;

}


printf("Geben Sie eine ganazzahlige Zahl ein:");

scanf("%i", &element[i]);


}

max = element[6];

min = element[6];


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

{

if(max < element[i])

max = element[i];

else

if(element[i] < min)

min = element[i];

}

printf("Maximum :\n", max);

printf("Minimum :\n", min);

printf("Elementanzahl : %d\n", sizeof(element) / sizeof(int));

printf("Feldinhalt :");

ausgabe(element,6);

return 0;

}

void ausgabe(intb,int groesse)

{ 

int i;

for (i = 0; i < groesse; i++)

{

printf(" %4d", b[i]);

}

printf("\n");

}


Kann mir jemand sagen was ich noch zu min und max ergänzen muss das ich auch min und max bekomme.
0

wie berechne ich das Produkt eines Arrays?

Ich habe echt alle jetzt hinbekommen aber jetzt fehlt mir das Produkt ich wollte das so machen

int produkt = 0;

produkt *= Array[i]; system.out... (produkt);

aaaaaaber da kommt immer ein Fehler in der console undzwar :** Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2 at Array.main(Array.java:36) 0**

hier erstmal mein Code import java.util.Scanner;

public class Array {

public static void main(String[] args)
{
    // TODO Auto-generated method stub
    {
        Scanner input=new Scanner(System.in);
        int summe=0;
       

        System.out.print("Wie groß soll das Array sein?");
        int Arraygroeße=input.nextInt();

        int Array[]=new int[Arraygroeße]; // erstellt ein Array mit der
                                          // Größe
                                          // die man eingibt

        int i;
        for (i=0; i<Array.length; i++)
        {
            System.out.print("Feldwert an Stelle "+i+" eingeben: ");
            Array[i]=input.nextInt(); // soll den Wert einlesen den der
                                      // Nutzer
                                      // haben möchte bis das ganze Array
                                      // ausgefüllt ist
        }

        for (i=0; i<Array.length; i++)



            summe+=Array[i];
        System.out.println("Die Summe ist :"+summe);

        int max=Array[0];
        for (i=0; i<Array.length; i++)
            if (max<Array[i])
                max=Array[i];

        System.out.println("Größter Wert des Arrays ist "+max);

        int min=Array[0];
        for (i=0; i<Array.length; i++)
            if (min>Array[i])
                min=Array[i];

        System.out.println("Kleiner Wert des Array ist "+min);

        double mittel=0; // Mittelwert auf 0 setzen
        mittel=summe/Array.length; // Mittelwert berechnen durch Summe
                                   // geteielt durch die Anzahl der Zahlen
                                   // im Array
        System.out.println("Der Mittelwert beträgt:  "+mittel);
        
       
        input.close();

    }
}

}

kann mir jemand bitte helfen wie ich das Produkt berechnen kann ? ( Java)

...zur Frage

C Programmierung Notenverwaltungssoftware ppm Ausgabe Hilfe ?

Liebe Leute benötige dringend Hilfe der ProgrammCode befindet sich in den Bildern und zuunterst .Es soll dem Anwender möglich sein eine Prüfung zu erfassen, die als Dateiname abgelegt wird.Nachdem dies vorgenommen wurde kann die Lehrkraft zu einem beliebigen Zeitpunkt, eine beliebige Anzahl Noten in diese Prüfung eintragen. Nachdem mehr als 2 Prüfungen eingetragen wurden, hat die Lehrkraft die möglichkeit ein Diagramm im Dateiformat ppm generieren zu lassen. Um dies bewerkstelligen zu können müssen Sie das einfache Ascii BildFormat studieren. https://de.wikipedia.org/wiki/Portable_Anymap ,heisst es in der Aufgabenstellung. irgend so ein Diagramm ausgeben für die Noten. 000000 111100 Note 4 000000 111110 Note 5 Vielen Dank.

include <stdlib.h>

include <stdio.h>

struct { char vorname[20]; char nachname[30]; char note1[80]; char note2[80]; char note3[80];

} adressen;

void speichern(void) { FILE save = fopen("adressen.dat","r+b"); if( NULL == save ) { save = fopen("adressen.dat","w+b"); if( NULL == save ) { fprintf(stderr,"Kann \"adressen.dat\" nicht öffnen!\n"); return; } } / FILE-Zeiger save auf das Ende der Datei setzen */ fseek(save, 0, SEEK_END);

/* Wir schreiben eine Adresse ans Ende von "adressen.dat". / if(fwrite(&adressen, sizeof(adressen), 1, save) != 1) { fprintf(stderr, "Fehler bei fwrite...!!!\n"); return; } / Wir geben unseren FILE-Zeiger wieder frei. */ fclose(save); }

void ausgabe(void) { FILE output = fopen("adressen.dat","r+b"); if( NULL == output ) { fprintf(stderr,"Kann \"adressen.dat\" nicht öffnen!\n"); return; } / Wir lesen alle Adressen aus "adressen.dat". / while(fread(&adressen, sizeof(adressen), 1, output) == 1) { printf("Vorname Schueler1. %s",adressen.vorname); printf("Nachname......... %s",adressen.nachname); printf("note1........... %s",adressen.note1); printf("\n"); printf("Vorname.Schueler2. %s",adressen.vorname); printf("Nachname......... %s",adressen.nachname); printf("note............. %s",adressen.note2); printf("\n\n"); printf("Vorname.Schueler3. %s",adressen.vorname); printf("Nachname......... %s",adressen.nachname); printf("note............. %s",adressen.note3); printf("\n\n"); printf("Vorname.......... %s",adressen.vorname); printf("Nachname..........%s",adressen.nachname); printf("note............. %s",adressen.note1); printf("\n\n"); printf("Vorname..........%s",adressen.vorname); printf("Nachname..........%s",adressen.nachname); printf("note..............%s",adressen.note2); printf("\n\n"); /WIE GIBT MAN BILD AUS IN KONSOLE??? / / Wir lesen alle Adressen aus "adressen.dat". */ } fclose(output); } void eingabe(void) { printf("Vorname Schueler1...."); fgets(adressen.vorname, sizeof(adressen.vorname), stdin

...zur Frage

wörter umdrehen und palindrome finden in c?

heyho :) ich wollte testen ob das wort, was ich eingegeben habe auch ein palindrom ist, also umgekehrt genau dasselbe wort ergibt. Nun versuche ich nach dem letzten kommentar zu vergleichen also ob die werte gleich sind, weil so wäre es ein palindrom. Jedoch finde ich meinen fehler nicht und wollte mal fragen ob einer von euch ihn findet :) LG Alina

include
include
int main(){
//einlesen
printf("Geben Sie die Länge des Strings an");
int a;
scanf("%i", &a);
char text[a];
printf("Text eingeben:\n");
int i;
for (i=0;i<a;i++){
scanf("%c", &text[i]);
}
//umgekehrt ausgeben
int c;
c=a;
while (c!=0){
printf("%c", text[c]);
c--;
}
//Palindrom oder nicht
int count=0;
i=1;
int d;
d=a; //5
while (text[i]==text[d]){
count ++;
i++;
d--;
}
if(count == a){
printf("palindrom");
}
return 0;
}
...zur Frage

Raute rekursiv programmieren?

Hallo ich habe hier ein Problem bei der Programmierung. Hier ist meine Aufgabenstellung:

Schreiben Sie eine Anwendung Raute.java, welche ein Raute ausgibt. Der Nutzer soll zuvor die Größe n der Raute eingeben können. Bei geraden Eingaben (n gerade) soll der Text: „Das Programm arbeitet nur mit ungeraden Werten.“ ausgegeben werden. Bei ungeraden Eingaben (n ungerade) soll eine Raute der Höhe n ausgegeben werden.

Das ist mein Quellcode (allerdings kommt nicht ganz das raus was ich brauche^^):

/* 
 * Erzeugen einer Raute-rekursiv
 */
 
import java.util.Scanner; 

public class Raute {
  
  public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
 
    // Eingabe
    System.out.println("Geben Sie die Größe Ihrer Raute ein(nur ungerade Werte):");
    int groesse = scan.nextInt();

    // Bedingung --> gerade Werte werden nicht
    // vom Programm bearbeitet (+ Ausgabe)
    if (groesse % 2 == 0) {
       System.err.println("Das Programm arbeitet nur mit ungeraden Werten!");
    }
    else {
       // Berechnung:
       resultat(groesse);
    }
  }

  public static String methode1(int groesse) {

    if (groesse > 0) {
       return "* " + methode1(groesse - 1);
    }
    else {
       return " ";
    }
  }

  public static String methode2(int groesse) {

    if (groesse > 0) {
      return "* " + methode1(groesse - 1);
    }
    else {
      return " ";
    }
  }

  public static String space(int groesse) {

    if (groesse > 0) {
      return " " + space(groesse - 1);
    } 
    else {
      return " ";
    }
  }

  public static void resultat(int groesse) {
    
    for (int i = 1; i < groesse; i++) {
      System.out.println(space(groesse - i));
      System.out.println(methode1(i));
    }

    for (int i = 0; i < groesse; i++) {
      System.out.println(methode2(groesse - i));
      System.out.println(space(i));
    }
  }
}

Z.B.: groesse = 5

Ausgabe:

*   

  

* *   

  

* * *   

* * * *  

 

* * *  

 

* *

  

*
...zur Frage

Was möchtest Du wissen?