C Programm

Martin098

Grünschnabel
Hallo Leute,
Ich habe einen kleines Problem. Ich möchte ein Programm schreiben bei dem man eine Obergrenze zB.: 250 und eine Untergrenze zb.: 0 eingibt und danach soll ich einen Algorithmus schreiben der von 0 bis 250 zählt und dann bestimmt wie viel '3' er auf der Einerstelle sich befinden und wie viele '7' er sich auf der Zehnerstelle sich befinden und das am Ende ausgibt. WICHTIG: Ich soll das Programm in einer Funktion schreiben und in C geschrieben werden !!
Ich hoffe Ihr könnt mir weiter helfen.
 
Hallo Martin098

Wie sieht dein Programm bisher aus? Wo steckst du fest? Wenn du willst, dass man dir das Programm schreibt -> Jobbörse.

Viele Grüsse
Cromon
 
Kennst Du überhaupt die Grundlagen von C?
Ich gebe Dir hier mal ein paar Tipps:
-mit if() kannst Du herausfinden ob sich die eingegebene Zahl zwischen 0 und 250 befindet (in deinem Beispiel)
-mit while() kannst Du eine Schleife laufen lassen, die bis 250 zählt
-mit if() kannst Du wieder überprüfen ob es '3' oder '7' oder andere Zahlen sind
-Funtionen dürften Dir hoffentlich klar sein.
 
Hallo Martin098

Dafür hat dir nun Hunter die nötigen Grundlagen geliefert. Wie wäre es wenn du dich mal daran setzt was zu programmieren und dann sagst wo du stecken bleibst. Wenn du die Grundlagen kennst solltest du ja schon mal sicher wissen wie du anfangen kannst.

Viele Grüsse
Cromon
 
Code:
Main:
{
    Untergrenze, Obergrenze eingeben lassen oder sonstwas
    Funktion1 mit den zwei Werten aufrufen, Returnwert ausgeben
    Funktion2 mit den zwei Werten aufrufen, Returnwert ausgeben
}

Funktion1:
{
    zähler = 0
    für alle i zw. Untergrenze und Obergrenze
    {
        wenn die Einerstelle von i 3 ist dann zähler erhöhen
    }
    return zähler
}

Funktion2:
{
    zähler = 0
    für alle i zw. Untergrenze und Obergrenze
    {
        wenn die Zehnerstelle von i 7 ist dann zähler erhöhen
    }
    return zähler
}
:rolleyes:

Um die Einerstelle einer int-Variable zu bekommen
ist Modulo (Rest von Division, "%") ganz hilfreich.

Für die Zehnerstelle: Zuerst die Zahl durch 10 dividieren
(Kommastellen verschwinden damit, weil int keine Kommastellen speicher kann)
und dann die Einerstelle nehmen.
 
C++:
//Header - Dateien einbinden
#include <stdio.h>
#include <stdlib.h>

//Funktionen 
int funktion1(int og, int ug);
int funktion2(int og, int ug);
//Hauptprogramm
int main(void){
	//Variablen
	int og = 0, ug = 0;

	printf("Obergrenze: ");
	scanf("%d", &og);
	printf("Untergrenze:");
	scanf("%d", &ug);

	funktion1(og, ug);
	funktion2(og, ug);


	return EXIT_SUCCESS;
}
int funktion1(int og, int ug){
	//Variablendeklaration
	int count = 0,i=0;

	for (i = ug; i <= og; i++){
		if (i % 10 == 3){
			count++;
		}
	}
	printf("Es gibt %d 3-er in dieser Grenze\n", i);
	return count;
}
int funktion2(int og, int ug){
	//Variablendeklaration
	int count = 0, i = 0;

	for (i = ug; i <= og; i++){
		if ((i /10)% 10 == 7){
			count++;
		}
	}
	printf("Es gibt %d 7-er in dieser Grenze\n", i);
	return count;
}
So da ist mein Quellcode dafür aber ich bekomme bei beiden immer das gleiche raus bzw. es ist falsch :( Wisst Ihr wo mein Fehler liegt?
 
Zuletzt bearbeitet:
ok peinlicher Fehler, jedoch funktioniert es noch nicht ganz: bsp.:
Obergrenze:77
Untergrenze:0

Es gibt 8 3-er in dieser Grenze
Es gibt 8 7-er in dieser Grenze

Das mit der Einer stelle passt schon, jedoch es dürfte sich eigentlich nur 1 '7' er auf der Zehner stelle befinden, das Programm gibt jedoch 8 davon aus.
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück