Hilfe gesucht, komme nicht weiter

10/18/2013 13:11 Crystal M0th#1
Hallo ich muss für die Uni einige Aufgaben lösen/programmieren, aber ich komme bei dieser Übung ab einen bestimmten Punkt nicht weiter.

//Schreiben Sie ein Programm, das zwei Zahlen m und n einliest und die n-te Ziffer der Zahl m ausgibt.
z.B. m=1358 n=2 Ausgabe: 5

Mein Code ist so:
Code:
#include <iostream>
using namespace std;

int main()
{
	int m, n;

	cout << "m= " << endl;
	cin >> m;

	cout << endl << endl << "n= " << endl;
	cin >> n;

	system("PAUSE");
	return 0;
}
Was ist mit der n-te Ziffer von m gemeint, wie kann ich das angeben?
Ich könnte das ja auch so machen, indem ich zwischen cin << n; und system("PAUSE"); ein cout << "nteZiffer = 5" << endl; einfüge.

Aber das ist wahrscheinlich nicht die lösung... .

Danke schonmal, LG Doc.
10/18/2013 13:38 Dr. Coxxy#2
zahl als string einlesen und dann den [strlen-n]ten bzw. [n]ten character (weiß net wie/wo du zu zählen beginnst in dem bsp.) abfragen -> deine gesuchte ziffer.
10/18/2013 13:39 snow#3
Code:
int main()
{
    std::cout << "Bitte eine Zahl eingeben" << std::endl;
	
	std::string num2str;
	std::cin >> num2str;
	
	std::cout << "Bitte n eingeben" << std::endl;
	
	int n = 0;
	std::cin >> n;
	
	if (num2str.length() >= n)
	{
		std::cout << n << ". Stelle von " << num2str << " ist " << num2str[num2str.length() - n] << std::endl;
	}
	
    std::cin.get();
}
sollte funktionieren, allerdings ohne Abfangen von Fehlern oder so. Das Programm erzeugt zumindest das gewünschte Output. :D

EDIT: Och Coxxy. :(
10/18/2013 13:52 Lazeboy#4
wie wäre es mit modulo? ;)

PHP Code:
int ExponentiatePositive(int numberint exp){

    if(
exp == 0){
        
        return 
1;
    }
    else{

        
int ret number;
        for(
int i 1expi++){

            
ret *= number;
        }

        return 
ret;
    }
}

//pos von hinten anfang bei 1
int GetDigit(int numberint pos){  

    
int retnumber %  ExponentiatePositive(10pos);;
    
ret /= ExponentiatePositive(10pos-1);
    return 
ret;
}

printf("%d"GetDigit(1358 2)); 
lg Lazeboy
10/18/2013 18:05 Crystal M0th#5
danke für eure hilfe!
ich habs geschafft und könnte die aufgabe erfolgreich hochladen

=D

LG Doc.