Hi guys the other day i posted a question regarding inputing data into a string. After much research my code has changed lots and i have got to this point
I am having problems with the strlen part of it. What the program needs to do is tell the user how many 1000's, 100's, 10's and 1's that have been entered with a maximum number size of 9999. If 123 is entered the program must say that the is 0 1000's, 1 100, 2, 10's and 3 1's. To be able to do this i have created a series of if and else if statements. What i am having with is when you enter a 4 digit number the program works as it sees that there have been 4 numbers entered. Where it stops working properly is when there have been 3 2 and 1 numbers entered. They give answers but they are 1 number out. So if 3 is entered strlen says that 4 has been entered. When 2 have been entered strlen says there has been 3 entered and so on. What is causing this. It is really confusing me.Code:#include <stdio.h> #include <stdlib.h> #include <string.h> int input; int q =0; int p; int d=0; int main(){ char sortingarray[5]; printf("Please enter a 4 digit number\n"); fgets ( sortingarray, 5, stdin ); d = strlen(sortingarray); printf("%d",d); if (d == 4){ printf("\n There are %c thousands in your number\n", sortingarray[0]); printf("\n There are %c hundreds in your number\n", sortingarray[1]); printf("\n There are %c tens in your number\n", sortingarray[2]); printf("\n There are %c ones in your number\n\n", sortingarray[3]); } else if (d==3){ printf("\n There are 0 thousands in your number\n"); printf("\n There are %c hundreds in your number\n", sortingarray[0]); printf("\n There are %c tens in your number\n", sortingarray[1]); printf("\n There are %c ones in your number\n\n", sortingarray[2]); } else if (d==2){ printf("\n There are 0 thousands in your number\n"); printf("\n There are 0 hundreds in your number\n"); printf("\n There are %c tens in your number\n", sortingarray[0]); printf("\n There are %c ones in your number\n\n", sortingarray[1]); } else if(d==1){ printf("\n There are 0 thousands in your number\n"); printf("\n There are 0 hundreds in your number\n"); printf("\n There are 0 tens in your number\n"); printf("\n There are %c ones in your number\n\n", sortingarray[0]); } system("PAUSE"); return 0; }
Thanks in advance
Sam



LinkBack URL
About LinkBacks


