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.?

3 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Ich habe dir das jetzt mal programmiert. Siehe dir meine Syntax an und versuche, zu interpretieren und es ggf. auf deinen Code zu übertragen.

{
Console.WriteLine("Bitte Größe eingeben.");

int size = Convert.ToInt32(Console.ReadLine());
int deductor = 1;

for (int Zahler = 0; Zahler <= size; Zahler++)
{
for (int S = size; S > Zahler; S--)
{
Console.Write(" ");
}

Console.Write("*");

if (Zahler > 0)
{
for (int k = 1; k <= deductor; k++)
{
Console.Write(" ");
}
deductor += 2;
Console.Write("*");
}
Console.WriteLine();
}

deductor -= 4;

for (int Counter = 0; Counter <= size - 1; Counter++)
{
for (int SmallCounter = 0; SmallCounter <= Counter; SmallCounter++)
{
Console.Write(" ");
}

Console.Write("*");

for (int k = 1; k <= deductor; k++)
{
Console.Write(" ");
}
deductor -= 2;

if (Counter != size - 1)
{
Console.Write("*");
}
Console.WriteLine();
}
Console.ReadLine();
} }

MfG

Dankeschön für den Stern 🌟

0

Hey ho,

erstmal stimme ich "ohwehohach" zu.

Du hast deine Endlosschleife, die du korrigieren musst.

Einmal zum Boolean von ihm:

bool ungerade = (zahl % 2) == 1;

Das Prozent heißt Modulo. Heißt, dass der Rest das Ergebnis ist. Wenn du durch 2 teilen kannst, bleibt kein Rest über.

Wenn du Zahl ungerade ist, schon.

Was dir sehr helfen mag, sind die Haltepunkte. Ich gehe mal stark davon aus, dass du mit VS programmieren tust. Links von dem Code, neben den Zahlen kannst du Breakpoints setzen, um den Code von dort aus zu verfolgen. Um nach vorn zu navigieren, einfach F10 drücken.

Dann kannst du auch nachvollziehen, was passiert. Siehe Screenshot.

MfG

 - (Computer, Spiele und Gaming, programmiersprache C)

Ja ich muss mit VS Enterprise 2017 programmieren. und ich muss halt davon ausgehen das der nutzer immer eine ungerade zahl eingeben wird, quasi komme was da wolle. deshalb würde der bool hier wegfallen.

1
for (int x = 9; x <= BREITE; x = x - 2)

Also hier ist ja schon einmal das Problem mit der Endlosschleife. Du fängst bei 9 an und zählst runter, solange x KLEINER/GLEICH der Breite ist. Wenn die Breite >= 9 ist, gilt das IMMER und die Schleife bricht niemals ab.

Da muss also folgendes stehen:

for (int x = BREITE; x > 0; x -= 2)

Was ist denn jetzt eigentlich die Frage? Wie Du prüfst, ob die Zahl ungerade ist, die der User eingibt?

bool ungerade = (zahl % 2) == 1;


nein ich soll davon ausgehen das der user immer zun 100% eine ungerade zahl eingibt und sich die raute danach richtet und so ausgegeben wird. Quasi das die raute so ausgegeben wird in der größe wie die ungerade zahl eingegeben wird und nicht gleich belibt und das die raute wie oben beschrieben nicht gefüllt ist sondern innen leer ist.

0

+1 = +4 , Pointer-Doppel-Verweis macht aus +1 +4?

  1. int *A, *B;
  2. A = &B
  3. B = &A
  4. B++;

Nach Ausführung ist die Speicheradresse um 4 erhöht.
Wie kann das sein?

...zur Frage

Code in ein Compilerprogramm(Code Blocks) einfügen?

Ist es möglich C- Code, eines Editors mit Copy und Paste, in Code-Blocks einzufügen ODER irgendwie den Code, welcher in einen Editor geschrieben wurde über die Projekt-Code-Blocks-Datei einzufügen um den Code zu testen? Und wenn ja wie, ich finde, in CodeBlocks nämlich den Paste-Befehl nirgends mir Rechtsklick?

...zur Frage

Python ausführbar machen - Python Programm erstellen?

Hi,

ich habe seit längerem ein bisschen mit Python experimentiert aber mich noch nicht wirklich damit befasst gehabt wie ich aus einem Script ein ausführbares Programm, das auch auf anderen Rechnern läuft, die nicht Python installiert haben, erstelle.

Jetzt habe ich gelesen das es zwar unter Linux möglich ist eine EXE per Shell zu erzeugen, aber der normale Weg zum Beispiel über C als "Umgebung" führt.

Da ich mit C nicht viel am Hut habe:

Wie könnte so eine Einbindung aussehen? Gibt es eventuell einen C Code in den man den Inhalt eines Python Scripts einfach einfügen kann und dieser wird dann ausgeführt?

Danke schonmal!

Q&Aer

...zur Frage

Unity3d C# Collider?

Hallo liebe Coding-Freunde!

Ich sitze gerade an einem kleinen Unity3d Game bei welchem man mit einer Kugel herum rollt und lustig rotierende Würfel aufsammeln muss (Hab nach einer Tutorialreihe gearbeitet https://www.youtube.com/watch?v=ubmVc6hZEVg&t=130s ).

Um die Berührung zwischen Spieler und Würfel zu erkennen, diese aufzusammeln, zu deaktivieren und meinem Score einen Punkt hinzuzufügen nutze ich unter anderem diese Zeilen:

void OnTriggerEnter(Collider collider) {
		if (collider.gameObject.CompareTag ("Gem")) {
			collider.gameObject.SetActive (false);
			count++;
			UpdateScoreText (); 
        }

Das funktioniert auch genau so wie es sollte.

Jetzt möchte ich noch Objekte hinzufügen, welche bei Berührung 10 Punkte von einer 100 Punkte großen HP Leiste abziehen. Dafür habe ich unter anderem diesen Code verwendet:

void OnTriggerEnter(Collider enemyHit) {
		if (enemyHit.gameObject.CompareTag ("Enemy")) {
			hp = hp - 10;
			UpdateHPText ();
		}

Jedoch sieht das Unitys Console gar nicht gerne und bestraft mich mit dieser Fehlermeldung:

error CS0111: A member `PlayerController_New.OnTriggerEnter(UnityEngine.Collider)' is already defined. Rename this member or use different parameter types

Leider kenne ich mich mit Coding genauso gut aus wie mit Chinesisch. Bei "ni hao" fängt es nicht nur an, da hört es auch schon wieder auf. Ich dachte, dass "Collider" ein normaler Befehl bzw. eine Definition sei, aber irgendwie stimmt das wohl nicht so ganz...Außerdem verstehe ich nicht ganz, was ich hinter den Collider in die Klammern schreiben muss (Collider collider). Ist das zweite, kleingeschriebene "collider" der Name dieser Kollision oder was? Ist mein (Collider enemyHit) sowieso falsch, weil es "enemyHit" einfach nicht gibt? Und was muss ich ändern, wo ich doch genau den selben Ablauf wie beim Würfel aufsammeln haben will, mit dem einzigen unterschied, dass das Objekt NICHT deaktiviert wird und Punkte abgezogen, statt dazugezählt werden.

Ich bin verwirrt, hoffe aber, dass es ein paar clevere Leute gibt die gerade überlegen lächelnd leicht ihren Kopf schütteln und sich meiner erbarmen, mich bei der Hand nehmen und mir die Welt erklären.

Vielen Dank schon mal

KomischerLappen :)


...zur Frage

Pyramide aus X's programmieren in C#?

hey ich soll eine Pyramide die aus lauter X's besteht programmieren.

also sowas hier:

X

XX

XXX

XXXX usw. nur das die spitze in der mitte sein soll.

bis jez hab ich das hier:

static void Main(string[] args)

{

Console.Write("Anzahl Zeilen: ");

int n = Convert.ToInt32(Console.ReadLine());

for (int i = 1; i <= n; i++)

{

for (int d = 1; d <= 2 * i - 1; d++)

{

Console.Write("X");

Console.ReadLine();

}

was fehlt mir noch? des stimmt einfach nicht

...zur Frage

Mit Java Daten zu MySQL Datenbank hinzufügen

Ich habe ein Programm geschrieben, das Primzahlen errechnet. Ich würde diese nun auch gerne in einer MySQL Datenbank abspeichern, weiß aber nicht genau wie ich das anstellen soll (eigentlich habe ich überhaupt keine Ahnung :) ).

Hier das ursprüngliche Programm:

public class Primzahlen {
 public static void main (String[] args) {
  double d1;
  int[] p;
  p = new int[350000000];
  p[0] = 2;
  int a = 0;
  System.out.print("2, ");

  for(int Zahl = 3; Zahl < 2000000000; Zahl++) {

   for(int  b = 0; b < 2000000000; b++) {
    d1 = (double) Zahl/p[b];
    int i1 = (int) d1;
    //System.out.println(d1-i1 + "  Ergebnis " + Zahl+ "/" + p[b] + ": " + d1 + "  Zahl: " + Zahl + "  Divisor:  " + p[b] + "    " + p[0] + p[1] + p[2] + p[3]);

    if ((d1 - i1) == 0.0) {
     //System.out.println(Zahl + " ist keine Primzahl, sie ist durch " + p[b] + " teilbar.");
     break;
    } else {
     if((p[b]*p[b]) > Zahl) {
      System.out.print(Zahl + ", ");
      a++;
      p[a] = Zahl;
      break;

     }
    }
   } 
  }
 }
}

Und hier mein kläglicher Versuch die Zahlen in der Datenbank zu speichern:

import java.sql.Connection;
public class Primzahlen {
 public static void main (String[] args) {
  Connection con = DriverManager.getConnection("jdbc:mysql://localhost:4001?user=schueler&password=0");
  stmt = con.creatStatement();

  double d1;
  int[] p;
  p = new int[1000];
  p[0] = 2;
  int a = 0;
  System.out.print("2, ");

  for(int Zahl = 3; Zahl < 2000; Zahl++) {

   for(int  b = 0; b < 2000; b++) {
    d1 = (double) Zahl/p[b];
    int i1 = (int) d1;
    //System.out.println(d1-i1 + "  Ergebnis " + Zahl+ "/" + p[b] + ": " + d1 + "  Zahl: " + Zahl + "  Divisor:  " + p[b] + "    " + p[0] + p[1] + p[2] + p[3]);

    if ((d1 - i1) == 0.0) {
     //System.out.println(Zahl + " ist keine Primzahl, sie ist durch " + p[b] + " teilbar.");
     break;
    } else {
     if((p[b]*p[b]) > Zahl) {
      System.out.print(Zahl + ", ");
      a++;
      p[a] = Zahl;
      stmt.executeQuery(INSERT INTO schueler_primzahlen.primzahlen (Primzahl Nr. , Wert);
      VALUES (a, Zahl);


      break;

     }
    }
   } 
  }
 }
}

Ich wäre sehr froh, wenn jemand mich von den Qualen des "Herumprobierens" erlösen könnte.

...zur Frage

Was möchtest Du wissen?