Wie füge ich eine Abfrage Möglichkeit ein in C#, sodass der Nutzer eine ungerade Zahl eingibt und sich dadurch das "Rautenerstellungsprogramm" auslöst s.u.?

Hallo Zusammen,

ich habe ein ansatzweises Programm fertigstellen können es funktioniert aber nicht ganz so wie ich es haben wollte (Ich bin noch Anfänger in Programmiersprachen) unten hänge ich mal das Programm an. Ich habe dabei mehrere Probleme zum einen will ich eine Nutzerabfrage einbauen (Konsolen Applikation) wo der Nutzer eine ungerade Zahl eingeben soll wo durch jeweils eine unterschiedliche Raute ausgegeben werden soll.

Und zum Anderen will ich noch herausfinden wie ich es hinbekomme das die Angezeigete Raute einerseits innen leer ist und andererseits das Programm nicht endlos Zeilen ausspuckt die ich in meinem Programm nicht brauchen kann.

Hier nun noch das was ich versuchsweise bisher geschrieben habe (Es handelt sich dabei um die Aufarbeitung einer Klassenarbeit aus JAVA die ich nun in C# eingenhändig schreiben soll):

namespace Klassenarbeit_Aufgabe_2 { public class Program { public static void Main(string[] args) { Console.WriteLine("Bitte geben Sie eine ungerade Zahl ein: "); string Zahl = Console.ReadLine();

            int LeerzeichenG, LeerzeichenRL, BREITE = 9;
            for (int x = 1; x <= BREITE; x = x + 2)
            {
                LeerzeichenG = BREITE - x;
                LeerzeichenRL = LeerzeichenG / 2;

                for (int lz = 0; lz < LeerzeichenRL; lz++)
                {
                    Console.Write(" ");

                }

                for (int xse = 0; xse < x; xse++)
                {
                    Console.Write("*");

                }

                for (int lz = 0; lz < LeerzeichenRL; lz++)
                {
                    Console.Write(" ");

                }
                Console.Write("\n");

            }

            for (int x = 9; x <= BREITE; x = x - 2)
            {
                LeerzeichenG = BREITE - x;
                LeerzeichenRL = LeerzeichenG / 2;

                for (int lz = 0; lz < LeerzeichenRL; lz++)
                {
                    Console.Write(" ");

                }

                for (int xse = 0; xse < x; xse++)
                {
                    Console.Write("*");

                }

                for (int lz = 0; lz < LeerzeichenRL; lz++)
                {
                    Console.Write(" ");

                }

                Console.Write("\n");

            }
            Console.ReadLine();
    } 
}

}

Für jegwede Hilfe oder Anregung wäre ich schon dankbar.

Mit freundlichen Grüßen

MJH92

Computer, C (Programmiersprache), Spiele und Gaming
Probleme mit C-Programmierung: Zahlen sortieren?

Hallo, ich habe folgendes Programm geschrieben und komme einfach nicht weiter. Das Programm zählt die Buchstaben einer .txt Datei und gibt ebenso deren Häufigkeit an. Ich soll jetzt noch die Anzahl der Buchstaben beginnen mit der größten Zahl sortieren. Die Buchstaben müssen dabei auch stimmen und natürlich die Häufigkeit. Kann mir jemand dabei helfen?

So weit bin ich gekommen, eine Beispiel txt Datei wurde implementiert. Ich programmiere mit Codeblocks.


#include <stdio.h>
include

char dateiname[40]; int anweisung1;

int main(int argc, char **argv) { if (argc != 2) { printf("Der Dateiname fehlt\n"); return 0; }

FILE *fp = fopen(argv[1], "r");
if (fp == NULL)
{
    printf("Die Datei kann nicht geoeffnet werden\n");
    return 0;
}

double anzahl[26] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
int gesamt = 0;


while (1) //Zähschleife
{
    int buchstaben = fgetc(fp);
    if (buchstaben < 0)
    {
        break;
    }
    if (buchstaben >= 'A' && buchstaben <= 'Z') //Zählschleife für Großbuchstaben
    {
        anzahl[buchstaben - 'A']++;
        gesamt++;
    }
    else if (buchstaben >= 'a' && buchstaben <= 'z')
    {
        anzahl[buchstaben - 'a']++; //Zähschleife für Kleinbuchstaben
        gesamt++;
    }
}


fclose(fp);

int anweisung;
printf("Dieses Programm zaehlt die die Buchstaben in einer .txt Datei\nund gibt die Haeufigkeit der Buchstaben an\n");
printf("Sie haben jetzt die Auswahl zwischen:\n");
printf("1. Die .txt Datei mit printf in der Konsole auszugeben\n");
printf("2. Eine neue .txt Datei zu speichern\n\n");
scanf("%d", &anweisung);

switch(anweisung)
{
case 1:
    printf("Die Gesamtzahl der Buchstaben lautet: %d\n",gesamt);

    int i;
    for (i = 0; i < 26; i++)
    {
        printf("%c : %0.lf", (i + 'A'), anzahl[i]);
        double prozente = anzahl[i]*100/gesamt;
        printf("\tHaeufigkeit: %.2lf%%\n",prozente);
    }
    return 0;

case 2:

    printf("\nBitte geben Sie den Dateinamen mit .txt an:\n\n");
    scanf("%s", dateiname);
    printf("\nIhre Datei heisst: %s.\n", dateiname);

    FILE* fp;
    fp = fopen(dateiname,"w");
    fprintf(fp,"Die Gesamtzahl der Buchstaben lautet: %d\n",gesamt);

    for (i = 0; i < 26; i++)
    {
        fprintf(fp,"%c : %0.1f\t  ", (i + 'A'), anzahl[i]);
        double prozente = anzahl[i]*100/gesamt;
        fprintf(fp,"Haeufigkeit: %.2lf%%\n",prozente);
    }
    return 0;
    fclose(fp);
}

}

programmieren, C (Programmiersprache), codeblocks
wieso kommt ein fehler beim kompilieren?

Hey Leute, bin 15 Jahre alt und lerne gerade die Programmiersprache, weil ich etwas in Richtung Informatik studieren will. Dafuer habe ich mir ein Buch gekauft und das heisst 'C Programmieren von Anfang an' von Helmut Erlenkoetter. Ich scheitere irgendwie schon beim Kompilieren. Dort wird ein Beispielprogramm angegeben das man abschreiben sollte

/* bspl0001.c */ 

#include <stdio.h>

main(){ 

    printf("\nDies ist mein erstes C-Programm.\n");

    printf("\nWie sie sehen, kann 'printf' ");

    printf("nicht nur Texte drucken,\n);

    printf("sondern auch rechnen. \n\n"); 

    printf("13 * 7 = %i \n", 13 * 7);

 }

und wenn ich kompilieren will dann kommen mehrer Error's. Die Entwicklungsumgebung mit der ich arbeite heisst Pelles C IDE. Ich habe mir diese ausgesucht, weil ich von mehreren Personen gehoert habe, dass sie anfaengerfreundlicher ist. Ich hoffe ihr koennt mir weiterhelfen.

Die Error's die mir angezeigt werden:

C:\Users\Amir x Lumpi\Desktop\fail\erstes Programm.c(6): error #1040: Unterminated string or char constant.

C:\Users\Amir x Lumpi\Desktop\fail\erstes Programm.c(3): warning #2099: Missing type specifier; assuming 'int'.

C:\Users\Amir x Lumpi\Desktop\fail\erstes Programm.c(3): warning #2117: Old-style function definition for 'main'.

C:\Users\Amir x Lumpi\Desktop\fail\erstes Programm.c(7): error #2140: Type error in argument 1 to 'printf'; expected 'const char * restrict' but found 'int'.

C:\Users\Amir x Lumpi\Desktop\fail\erstes Programm.c(7): error #2001: Syntax error: expected ')' but found ';'.

* Fehlercode: 1 * Fertig.

programmieren, linker, Informatik, Programmiersprache, C (Programmiersprache), Erzeuger, kompilieren, Quellcode
C Programmierung: Scanf-befehl funktioniert nicht nach If- Anweisung

Guten Tag habe da ein Problem bei einem Programm an dem ich gerade arbeite: Ich soll mit Kommandos (list, pop, push und exit) einen Stack mit zeichen füllen, das letzte zeichen löschen, eine Liste des Stacks ausgeben oder das Programm verlassen. Momentan funktioniert nur das verleassen des Programms, da der Scanf-befehl hinter der if-Anweisung nach dem Kompilieren nicht ausgeführt wird, um ein Zeichen einzulesen. (fgetc() hat auch nicht funktioniert).

Vielleicht kann mir ja jemand erklären woran es liegt.

Quelltext:

include include include define NSTACK 15

int main(){ //Anfang Main

//Variablendeklaration char eingabe[6]; char stack[NSTACK]; char item; char z; //zwischenspeicher für zeichen int sp=0; //Ende Variablendeklaration

printf("\nStack auffüllen (bis 15 Zeichen)\n");
printf("Liste der Befehle:\n\n");
printf("list = Liste des Stacks anzeigen\n");
printf("push = Zeichen auf den Stack legen\n");
printf("pop = Zeichen vom Stapel nehmen\n");
printf("exit = Programm beenden\n\n");

 while(eingabe){    //Eingabeschleife

  printf("\nBitte geben Sie ihren Befehl ein: ");
  scanf("%s", &eingabe);
  printf("eingegebener Befehl: %s\n", eingabe);

  
  if (strcmp(eingabe,"exit") == 0){             //exit
printf("\n!!Das Programm wird beendet!!\n");
exit(1);
  } //ende exit
  
  else if (strcmp(eingabe,"push") == 0){            //push
scanf("%c", &z);
printf("Zeichen wird auf Stack gelegt\n");
  } //ende push
  else if (strcmp(eingabe,"pop") == 0){         //pop
printf("Das obertste Zeichen wird entfernt\n");
  } //ende pop
  else if (strcmp(eingabe,"list") == 0){            //liste ausgeben
printf("Die Liste des Stacks wird ausgegeben\n");
printf("%s\n", &stack);
  } //ende list
  
 }  //Ende eingabeschleife
 


printf("\ntest");

printf("\n\n"); return 0; } //Ende Main

programmieren, Informatik, scan, stack, C (Programmiersprache)
Taschenrechner programmieren mit C (Double und Nachkommastellen)

Ich hab angefangen einen Taschenrechner mit C zu programmieren und so sieht es bis jetzt aus


#include "stdlib.h"
#include "math.h"
#include "string.h"
#include "stdio.h"

int main(int argc, char *argv[])
{

int Zahl1;
int Zahl2;
int Gesamt;
int Merker;                                     
int Laenge;
int Stelle;


char Eingabe_Zahl1[100];                                     
char Eingabe_Zahl2[100];                                      
char Rechenzeichen[100];                              

ANFANG:                                                                                          

gets(Rechenzeichen);    

Merker = 0;

if (Rechenzeichen[0]=='+') Merker = 1;    

if (Rechenzeichen[0]=='-') Merker = 1;   

if (Rechenzeichen[0]=='*') Merker = 1;   

if (Rechenzeichen[0]=='/') Merker = 1;

if (Merker == 0) printf("Hier duerfen nur Rechenzeichen stehen!\n");                                  
if (Merker == 0) printf("\n");
if (Merker == 0) goto ANFANG;


gets(Eingabe_Zahl1);   

Laenge=strlen(Eingabe_Zahl1);

//printf("%d Zeichen\n", Laenge);

Stelle = 0 ;

PRUEF_ZAHL1:

Merker = 0 ;

if (Eingabe_Zahl1[Stelle]== '0') Merker = 1;    

if (Eingabe_Zahl1[Stelle]== '1') Merker = 1;   

if (Eingabe_Zahl1[Stelle]== '2') Merker = 1;   

if (Eingabe_Zahl1[Stelle]== '3') Merker = 1;

if (Eingabe_Zahl1[Stelle]== '4') Merker = 1; 

if (Eingabe_Zahl1[Stelle]== '5') Merker = 1; 

if (Eingabe_Zahl1[Stelle]== '6') Merker = 1; 

if (Eingabe_Zahl1[Stelle]== '7') Merker = 1; 

if (Eingabe_Zahl1[Stelle]== '8') Merker = 1; 

if (Eingabe_Zahl1[Stelle]== '9') Merker = 1; 

if (Merker == 0) printf("Hier duerfen nur Zahlen stehen!\n");
if (Merker == 0) printf("\n");
if (Merker == 0) goto ANFANG;           

Stelle=Stelle +1;
if (Laenge != Stelle) goto PRUEF_ZAHL1;

printf("Bitte geben Sie die zweite Zahl ein   : ");       
gets(Eingabe_Zahl2);                                          

Laenge=strlen(Eingabe_Zahl2);

//printf("%d Zeichen\n", Laenge);

Stelle = 0 ;

PRUEF_ZAHL2:

Merker = 0 ;

if (Eingabe_Zahl2[Stelle]== '0') Merker = 1;    

if (Eingabe_Zahl2[Stelle]== '1') Merker = 1;   

if (Eingabe_Zahl2[Stelle]== '2') Merker = 1;   

if (Eingabe_Zahl2[Stelle]== '3') Merker = 1;

if (Eingabe_Zahl2[Stelle]== '4') Merker = 1; 

if (Eingabe_Zahl2[Stelle]== '5') Merker = 1; 

if (Eingabe_Zahl2[Stelle]== '6') Merker = 1; 

if (Eingabe_Zahl2[Stelle]== '7') Merker = 1; 

if (Eingabe_Zahl2[Stelle]== '8') Merker = 1; 

if (Eingabe_Zahl2[Stelle]== '9') Merker = 1; 

if (Merker == 0) printf("Hier duerfen nur Zahlen stehen!\n");
if (Merker == 0) printf("\n");
if (Merker == 0) goto ANFANG;           

Stelle=Stelle+1;
if (Laenge != Stelle) goto PRUEF_ZAHL2;

Zahl1=atoi(Eingabe_Zahl1);                                    
Zahl2=atoi(Eingabe_Zahl2);                                    

if (Rechenzeichen[0]=='+') Gesamt = Zahl1 + Zahl2;    

if (Rechenzeichen[0]=='-') Gesamt = Zahl1 - Zahl2;   

if (Rechenzeichen[0]=='*') Gesamt = Zahl1 * Zahl2;   

if (Rechenzeichen[0]=='/') Gesamt = Zahl1 / Zahl2;

printf("Das Ergebnis lautet                   : %d\n" ,Gesamt);
printf("\n");           

goto ANFANG;                            

Ich weiß goto und atoi und sowas ist doof aber darum geht es jetzt nicht.
WEnn man bei diesem Rechner die Zahl 2147483647 eingibt und dann +1 rechnet
kommt - 2147483647 raus.
Man macht das anscheind mit double aber irgendwie verteh ich das nicht und außerdem kann dieser Rechner keine Kommazahlen berechnen.
Wäre nett wenn jemand der das versteht mir helfen könnte.
DAnke

Computer, programmieren, Taschenrechner, C (Programmiersprache), double, nachkommastellen

Meistgelesene Beiträge zum Thema C (Programmiersprache)