Ohmen/Omega in C/C++?

1 Antwort

Das geht unter Windows nicht, zumindest nicht ohne die Codepage der ollen Windows-Konsole zu ändern. (z. B. in ISO-8859-7, aber dann kannst du keine deutschen Umlaute mehr anzeigen, obwohl '\xD9' ein großes Omega, also ein 'Ω', wäre.)

Unter allen anderen Plattformen geht es hingegen seit Jahrzehnten, einfach indem du Unicode-Literale verwendest. (Theoretisch geht es unter Windows auch mit Unicode, aber Microsoft schafft es seit Jahren nicht, das Ganze fehlerfrei zu implementieren, und deshalb ist es im Moment faktisch nicht zuverlässig nutzbar.)

Eine Alternative wäre, dass du dir eine GUI baust, und die rohen Ein- und Ausgabeströme selber kodierst, bzw. dekodierst, ... also praktisch, dass du dir so eine Art eigenes Konsolenfenster baust. Aber das wäre ein völlig anderer Ansatz ...

Fazit: Geht nicht. Zumindest unter Windows. :)

Zahlenraten mit C programmieren

Hallo lieber Leser,

Ich habe ein Problem mit einer Aufgabe, die die C-Programmierung betrifft.

Es geht um ein C-Programm, das zufällig zwei ganze Zahlen a und b zwischen 1 und 1000 bestimmt, so dass a <= b gilt. Der Benutzer soll so lange aufgefordert werden, eine Zahl zu raten, bis er die Zahl gefunden hat, die genau in der Mitte von a und b liegt. Nach jedem Rateversuch erhält der Benutzer einen Hinweis: Ist die Zahl kleiner als a oder größer als b: „Viel zu klein!“ bzw. „Viel zu groß!“ Ist die Zahl im richtigen Bereich, aber näher einer Grenze als an der Mitte: „Zu klein!“ bzw. „Zu groß!“ Anderenfalls: „Ein bisschen zu klein!“ bzw. „Ein bisschen zu groß!“

Wenn der Benutzer richtig geraten hat, erhält er die Mitteilung „Richtig!“ und die Grenzen werden zur Kontrolle ausgegeben. Ich komme nicht richtig zurecht und stehe auf dem Schlauch.

Mein Code sieht bisher so aus, aber ich komme nicht so recht weiter: Auch wollte ich Zahlenräume schaffen, die unterscheiden zwischen "viel zu groß" und "ein bisschen zu groß" - die ich aber nicht umsetzten kann.

#include <stdio.h>
#include <time.h>
#include <stdlib.h>


//Funktion für die zufällige Nummer
//int randomNumber() {
//int r = rand() % 1001 + 1;


int main() {

    srand(time(NULL));

    //int a = randomNumber();
    //int b = randomNumber();

    int a, b;
    do{
        a = rand() % 1000 + 1;
        b = rand() % 1000 + 1;
    } while (a < b);
    int mitte = (a + b) / 2;
    int gerateneZahl;

    //Diese drei Zeilen habe ich nur genutzt, um zu überprüfen, ob die Zahlen stimmen
    printf("%i\n", a);
    printf("%i\n", b);
    printf("%i\n", mitte);

    printf("\nBitte geben Sie eine Zahl ein: ");
        scanf_s("%i", &gerateneZahl);


    while (a >= b) {

        printf("\nBitte geben Sie eine Zahl ein: ");
        scanf_s("%i", &gerateneZahl);

        if (gerateneZahl > mitte) {
            printf("ein bisschen zu groß\n");
        }
        if (gerateneZahl > (mitte)) {
            printf("viel zu gross\n");
        }
        else if (gerateneZahl < mitte) {
            printf("ein bisschen zu klein\n");
        }
        else if (gerateneZahl < (mitte)) {
            printf("viel zu klein\n");
        }
        if (gerateneZahl == mitte) {
            printf("Richtig! Die Grenzen waren %d und %d\n", a, b);
        }
    }

    return 0;

}

das > soll eigentlich ein < bzw > sein. Keine Ahnung wieso das so angezeigt wird.

Kann mir da jemand helfen bitte? Ich habe ein paar Probleme und bräuchte echt Hilfe. Ich wäre nicht hier wenn es nicht ernst wäre.

Danke!

...zur Frage

Visual Studio C++ eingabe und ausgabe eines Buchstaben

include

include

int main (void) { char B; int i;

printf("Geben Sie einen Buchstaben ein:"); scanf_s("%s",&B); printf("Der eingegebene Buchstabe war: %s\n",B); system("Pause"); return 0; }

Bei diesem Programm kann ich zwar einen Buchstaben eingeben,aber es wird mir keiner ausgegeben. Da steht dann der Buchstabe wäre (null). Was mach ich falsch, bei meinen Kommilitonen klappts mit genau dem selben Programm...

...zur Frage

C Programmierung: 2 Eingaben durch Komma trennen?

Hallo,

ich habe folgende Aufgabe:

Schreiben Sie ein C-Programm, das zwei Integerzahlen (Typ int) einliest und addiert.

Programm Bereichsüberschreitungen

Geben Sie bitte zwei Integerzahlen ein: x, y

Die Summe von x und y ist: _______

Experimentieren Sie mit sehr großen Werten und erläutern Sie in 5 Sätzen, welche Effekte auftreten und woran das liegt.

Mein bisheriger Code:

include

int main() { int x; int y; int ergebnis;

printf("Welche zwei Integer sollen addiert werden?");
printf("\nErster Integer: ");
scanf_s("%i", &x);
printf("Zweiter Interger: ");
scanf_s("%i", &y);

ergebnis = x + y;

printf("Das Ergebnis aus %i + %i = %i\n", x, y, ergebnis);

return 0;

}

Erstens kriege ich es nicht hin, dass ich die Eingaben des Users durch ein Komma trenne. Immer nach dem ersten Integer macht er dann automatisch ein Zeilenumbruch, bevor ich das Komma ausgeben lassen würde.

Zweitens weiß ich nicht, wieso ich mit großen Zahlen experimentieren soll. Irgendwann (ca. bei 2.147.000.000) wird die Zahl einfach zu groß für den Typ Integer. Aber das kann es doch nicht gewesen sein.

Vielen Dank im Voraus!

...zur Frage

Was bedeutet das i++ in diesem Programm?

Hier der Code das programm liest einen satz ein und gibt jedes wort in einer neuen zeile wieder nur wofür das i++ am ende? ich kenns normal nur in ner forschleife um die steigerung z.b. also i=i+1 anzugeben ?!

#include <stdio.h>
main() {
int i=0;
char text[100];
printf("\nBitte einen Satz eintragen.\n");
gets(text);
while(text[i]) {
if(text[i] != '  ')
printf("%c",text[i]);
else
printf("\n");
i++;
}
}
...zur Frage

Wo ist der Fehler in diesem C-Programm?

Es soll der Benzinverbrauch eines Autos pro 100km aus verbrauchtem Kraftstoff in Litern und gefahrener Strecke in Kilometern berechnet werden. Das Programm hört nach der 2ten Eingabe auf und gibt "Drücken Sie eine beliebige Taste...aus.

include

main(){

double verbrauch,strecke;

printf("\n\tBenzinverbrauch");

printf("\n\nBitte verbrauchten Kraftstoff in Litern eingeben: ");

scanf("%lf",verbrauch);

printf("Bitte gefahrene Strecke in Kilometern eingeben: ");

scanf("%lf",strecke);

printf("\nIhr Auto verbraucht ");

printf("%lf",verbrauch*100/strecke);

printf(" Liter pro 100km.");

}

...zur Frage

Hochzahlen in C-Programmierung

Wie lässt sich die dritte Potenz einer Zahl in der Programmiersprache C ausgeben? (jedoch ohne Verwendung der mathematischen Bibliothek)

Mein Source-Code(fehlerhaft):

**#include<stdio.h>

main() { double x

printf("Geben Sie bitte eine Zahl ein:"); scanf("%lf", &x);

y = x³;

printf("Dreierpotenz davon = %lf", y); } **

...zur Frage

Was möchtest Du wissen?