Compare commits

..

3 Commits
main ... main

Author SHA1 Message Date
81336ee063 bmi.c 2026-03-26 13:40:35 +01:00
d9083cf4c1 bmi.c 2026-03-26 13:32:28 +01:00
1e431c8f1e Add clion files to gitignore + Add clang-format 2026-03-26 13:31:08 +01:00
11 changed files with 77 additions and 197 deletions

57
.clang-format Normal file
View File

@ -0,0 +1,57 @@
---
Language: Cpp
BasedOnStyle: LLVM
AccessModifierOffset: -4
AlignConsecutiveAssignments: false
AlignConsecutiveDeclarations: false
AlignOperands: true
AlignTrailingComments: false
AlwaysBreakTemplateDeclarations: Yes
BraceWrapping:
AfterCaseLabel: false
AfterClass: false
AfterControlStatement: false
AfterEnum: false
AfterFunction: false
AfterNamespace: false
AfterStruct: false
AfterUnion: false
AfterExternBlock: false
BeforeCatch: false
BeforeElse: false
BeforeLambdaBody: false
BeforeWhile: false
SplitEmptyFunction: true
SplitEmptyRecord: true
SplitEmptyNamespace: true
BreakBeforeBraces: Custom
BreakConstructorInitializers: AfterColon
BreakConstructorInitializersBeforeComma: false
ColumnLimit: 240
ConstructorInitializerAllOnOneLineOrOnePerLine: false
ContinuationIndentWidth: 8
IncludeCategories:
- Regex: '^<.*'
Priority: 1
- Regex: '^".*'
Priority: 2
- Regex: '.*'
Priority: 3
IncludeIsMainRegex: '([-_](test|unittest))?$'
IndentCaseLabels: true
IndentWidth: 4
InsertNewlineAtEOF: true
MacroBlockBegin: ''
MacroBlockEnd: ''
MaxEmptyLinesToKeep: 2
NamespaceIndentation: All
SpaceAfterCStyleCast: true
SpaceAfterTemplateKeyword: false
SpaceBeforeRangeBasedForLoopColon: false
SpaceInEmptyParentheses: false
SpacesInAngles: false
SpacesInConditionalStatement: false
SpacesInCStyleCastParentheses: false
SpacesInParentheses: false
TabWidth: 4
...

1
.gitignore vendored
View File

@ -1,3 +1,4 @@
*.zip
*.exe
*.o
.idea/

View File

@ -5,36 +5,27 @@
#include <stdio.h>
int main() {
unsigned int gewicht_kg = 0;
unsigned int groesse_cm = 0;
int main()
{
unsigned int gewichtInKg = 0;
unsigned int groesseInCm = 0;
double bmi = 0;
printf("Geben sie ihr Gewicht in Kg ein: ");
scanf("%d", &gewicht_kg);
printf("Geben Sie bitte Ihr Gewicht in Kg ein: ");
scanf("%d", &gewichtInKg);
printf("Geben sie Ihre Groesse in cm: ");
scanf("%d", &groesse_cm);
printf("Geben Sie bitte Ihre Groesse in cm ein: ");
scanf("%d", &groesseInCm);
bmi = gewichtInKg / ((groesseInCm / 100.0) * (groesseInCm / 100.0));
printf("Fuer ein Gewicht mit %u kg und einer Groesse von %u cm lautet der BMI %lf.\n", gewichtInKg, groesseInCm, bmi);
printf("Das ist ");
printf("Gewicht: %i Kg\n", gewicht_kg);
printf("Groesse: %i cm\n", groesse_cm);
double bmi = gewicht_kg / ((groesse_cm / 100.f) * (groesse_cm / 100.f));
printf("Fuer ein Gewicht mit %d Kg und %d cm lautet der BMI: %.2lf\n", gewicht_kg, groesse_cm, bmi);
if (bmi < 18.5)
{
printf("Untergewicht.\n");
}
printf("Das ist untergewichtig!");
else if (bmi > 25)
{
printf("Uebergewicht.\n");
}
printf("Das ist uebergewichtig!");
else
{
printf("Normalgewicht.\n");
}
printf("Das ist Normalgewicht.");
return 0;
}

View File

@ -1,50 +0,0 @@
/*****************************************************************************************
* Schreiben Sie ein Programm, das vom Benutzer einen Buchstaben einliest und ausgibt, *
* der wievielte Buchstabe im Alphabet die Eingabe ist. Groß- und Kleinschreibung sollen *
* keine Rolle spielen. Zudem soll das Programm vorher ausgeben, ob der Benutzer einen *
* Buchstaben eingegeben hat und die Ausgabe somit richtig ist. *
* *
* 1. Beispiel: *
* >> Geben Sie einen Buchstaben ein: B *
* Die folgende Ausgabe ist richtig, weil das Zeichen B ein Buchstabe ist: 1 *
* Der Buchstabe B ist der 2. Buchstabe im Alphabet. *
* *
* 2. Beispiel: *
* >> Geben Sie einen Buchstaben ein: b *
* Die folgende Ausgabe ist richtig, weil das Zeichen b ein Buchstabe ist: 1 *
* Der Buchstabe b ist der 2. Buchstabe im Alphabet. *
* *
* 3. Beispiel: *
* >> Geben Sie einen Buchstaben ein: 3 *
* Die folgende Ausgabe ist richtig, weil das Zeichen 3 ein Buchstabe ist: 0 *
* Der Buchstabe 3 ist der -13. Buchstabe im Alphabet. *
*****************************************************************************************/
#include <stdio.h>
#include <ctype.h>
#include "myio.h"
int main()
{
unsigned char character = 'a';
while(character != '\n')
{
unsigned char lowerChar;
printf("Eingabe einzelnes Zeichen: ");
character = getSingleChar();
lowerChar = tolower(character);
if(lowerChar >= 'a' && lowerChar <= 'z')
{
unsigned int alphaPos = lowerChar - 'a' + 1;
printf("Der Buchstabe %c liegt an %u. Stelle im Alphabet.\n", character, alphaPos);
}
}
return 0;
}

View File

@ -1,37 +0,0 @@
/****************************************************************************************************
* Aufgaben
* 1. Begeben Sie sich zunaechst ohne Compiler auf Fehlersuche. Welche Fehler können Sie entdecken? *
* Wuerde das Programm uebersetzen? Wuerde das Programm korrekt laufen? *
* 2. Uebersetzen Sie nun das Programm ohne -Wall. Hilft Ihnen dies bei der Fehlersuche? *
* 3. Uebersetzen Sie nun das Programme mit -Wall. Hilft Ihnen dies bei der Fehlersuche? *
* 4. Finden und korrigieren Sie nun alle Fehler, sodass das Programm korrekte Ausgaben liefert. *
* Nehmen Sie dabei so wenig Veraenderungen wie moeglich vor. *
*****************************************************************************************************/
#include <stdio.h>
#define MAX_PUNKTE_TEIL_A 60
#define MAX_PUNKTE_TEIL_B 44
#define MAX_GESAMT_PUNKTE MAX_PUNKTE_TEIL_A + MAX_PUNKTE_TEIL_B
int main()
{
int pktTeilA, pktTeilB;
double ergInProzentTeilA, ergInProzentTeilB, gesamtErgInProzent;
printf("Wie viele Punkte wurden in Teil A erzielt: ");
scanf("%d", pktTeilA);
printf("Wie viele Punkte wurden in Teil B erzielt: ");
scanf("%d", pktTeilB);
ergInProzentTeilA = pktTeilA * 100 / MAX_PUNKTE_TEIL_A;
ergInProzentTeilB = pktTeilB * 100 / MAX_PUNKTE_TEIL_B;
gesamtErgInProzent = (pktTeilA + pktTeilB) * 100 / MAX_GESAMT_PUNKTE;
printf("Es wurden %d %% der moeglichen Punkte in Teil A erzielt.\n", ergInProzentTeilA);
printf("Es wurden %d %% der moeglichen Punkte in Teil B erzielt.\n", ergInProzentTeilB);
printf("Es wurden %d %% der moeglichen Punkte insgesamt erzielt.\n", gesamtErgInProzent);
return 0;
}

View File

@ -1,9 +0,0 @@
/***************************************************************************************************************
* Schreiben Sie ein Programm, das vom Benutzer einen Nettopreis in Euro einliest und dazu den Bruttopreis *
* ausgibt. Verwenden Sie fuer die Mehrwertsteuer eine symbolische Konstante und lagern Sie diese in eine *
* separate Header-Datei aus. Die Mehrwertsteuer betraegt derzeit 19 % (Buecher und Lebensmittel ausgenommen). *
* *
* Beispiel: *
* >> Geben Sie einen Nettopreis in Euro ein: 10 *
* Der Bruttopreis betraegt 11.90 Euro *
***************************************************************************************************************/

View File

@ -1,12 +0,0 @@
#include <stdio.h>
#include "myio.h"
unsigned char getSingleChar()
{
unsigned char result = 'a';
result = getchar();
while(result != '\n' && getchar() != '\n') {}
return result;
}

View File

@ -1,6 +0,0 @@
#ifndef MYIO_H
#define MYIO_H
unsigned char getSingleChar();
#endif

View File

@ -1,17 +0,0 @@
/************************************************************************************************
* Schreiben Sie ein Programm, das zwei Zahlen und anschliessend + oder - vom Benutzer einliest *
* und das Ergebnis der Rechenoperation ausgibt. Hinweis: Diese Aufgabe ist ohne if zu loesen, *
* das erst spaeter eingefuehrt wird. *
* *
* 1. Beispiel: *
* >> Geben Sie die 1. Zahl ein: 2 *
* >> Geben Sie die 2. Zahl ein: 3 *
* >> Geben Sie die gewuenschte Rechenoperation ein (+/-): - *
* 2 - 3 = -1 *
* *
* 2. Beispiel: *
* >> Geben Sie die 1. Zahl ein: 2 *
* >> Geben Sie die 2. Zahl ein: 3 *
* >> Geben Sie die gewuenschte Rechenoperation ein (+/-): + *
* 2 + 3 = 5 *
************************************************************************************************/

View File

@ -1,6 +0,0 @@
#include <stdio.h>
/***************************************************************************************************************************************
* Schreiben Sie ein Programm, das einen Winkel in Grad als ganze Zahl einliest und diesen in rad (als Fliesskommazahl) wieder ausgibt. *
* Nutzen Sie dabei sinnvoll mindestens eine Makro-Konstante. Der Winkel in rad soll dabei mit drei Nachkommastellen ausgegeben werden. *
****************************************************************************************************************************************/

View File

@ -1,32 +0,0 @@
/****************************************************************************************************************
* Schreiben Sie ein Programm, das vom Benutzer zwei ganze, positive, *
* dreistellige Zahlen einliest und ausgibt, ob beide Zahlen gleich sind. *
* Dabei soll die erste Zahl mit scanf und die zweite mit getchar eingelesen *
* werden. Zudem soll das Programm ausgeben, ob die erste Eingabe des Benutzers *
* korrekt war. *
* *
* Wie erklaeren Sie sich den Verlauf des 2. Beispiels? *
* *
* 1. Beispiel: *
* >> Geben Sie eine dreistellige, ganze und positive Zahl ein: 345 *
* Es wurde eine dreistellige, positive Zahl eingegeben: 1 *
* >> Geben Sie noch einmal eine dreistellige, ganze und positive Zahl ein: 345 *
* 345 == 345? -> 1 *
* *
* 2. Beispiel (Hier kann man die Ausgabe ignorieren, nachdem angezeigt wurde, dass die Eingabe nicht stimmt.): *
* >> Geben Sie eine dreistellige, ganze und positive Zahl ein: dfg *
* Es wurde eine dreistellige, positive Zahl eingegeben: 0 *
* >> Geben Sie noch einmal eine dreistellige, ganze und positive Zahl ein: 0 == 5912? -> 0 *
* *
* 3. Beispiel: *
* >> Geben Sie eine dreistellige, ganze und positive Zahl ein: 567 *
* Es wurde eine dreistellige, positive Zahl eingegeben: 1 *
* >> Geben Sie noch einmal eine dreistellige, ganze und positive Zahl ein: 111 *
* 567 == 111? -> 0 *
* *
* 4. Beispiel: *
* >> Geben Sie eine dreistellige, ganze und positive Zahl ein: 20 *
* Es wurde eine dreistellige, positive Zahl eingegeben: 0 *
* >> Geben Sie noch einmal eine dreistellige, ganze und positive Zahl ein: 300 *
* 20 == 300? -> 0 *
****************************************************************************************************************/