After hours of brain roasting, I finally think I got it. It's not the most effective algorithme, but it's working. I'll try to cut it down a little tomorrow.
#import <Foundation/Foundation.h>
@interface NumberRow : NSObject
-(void)setUserNumber: (int)n;
-(void)numbersToChars;
-(int)userNumber;
@end
@implementation NumberRow
{
int userNumber;
}
-(void)setUserNumber: (int)n
{
userNumber = n;
}
-(void)numbersToChars
{
switch (userNumber) {
case 0:
NSLog(@"zero\n");
break;
case 1:
NSLog(@"one\n");
break;
case 2:
NSLog(@"two\n");
break;
case 3:
NSLog(@"three\n");
break;
case 4:
NSLog(@"four\n");
break;
case 5:
NSLog(@"five\n");
break;
case 6:
NSLog(@"six\n");
break;
case 7:
NSLog(@"seven\n");
break;
case 8:
NSLog(@"eight\n");
break;
case 9:
NSLog(@"nine\n");
break;
default:
NSLog(@"The user input was not a number...");
break;
}
}
-(int)userNumber
{
return userNumber;
}
@end
int main(int argc, const char * argv[])
{
@autoreleasepool {
int number, divideWith = 1, counter = 1, firstNumber;
BOOL erNegativt;
NumberRow *spellIt = [[NumberRow alloc]init];
// spør om nummer fra bruker
NSLog(@"Nummeret: ");
scanf("%i", &number);
// avgjør om nummeret er negativt
if (number < 0) {
erNegativt = YES;
number = -number;
}
else
erNegativt = NO;
int numberCopy = number;
int n = number;
for (n = number; n != 0; n /= 10) {
counter *= 10;
}
divideWith = counter / 10;
//spytter inn minus om negativt
if (erNegativt == YES)
NSLog(@"minus");
while (numberCopy != 0) {
if (numberCopy > 9) {
if (divideWith < 10) {
divideWith = 10;
}
}
//setter forsteNummer
firstNumber = numberCopy / divideWith;
[spellIt setUserNumber:firstNumber];
// skriver ut i bokstaver
[spellIt numbersToChars];
numberCopy = numberCopy - (firstNumber * divideWith);
// gjør klart for neste tall i løkka
divideWith /= 10;
}
if (number == 0) {
NSLog(@"null");
}
}
return 0;
}