Jak zrobić, żeby program odróżniał znaki od liczb.

0

Mam napisać program, który mnoży wpisywanie liczby przez siebie.Kiedy natrafi na coś innego od liczby ma się zatrzymać. Na razie mam takie coś:

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
    printf("Podaj 10 liczb\n");
    int i,a=1,ilo=1;
for(i;i;i){

scanf("%d",&a);
ilo*=a;
printf("Iloczyn %d",ilo);
if(a=){
printf("Blad danych wejsciowych");
break;}
}
printf("Suma 10 liczb wynosi%d ",ilo);
return 0;
}

Próbowałem z resztą z dzielenia, ale to nic nie daje.

0

Cyfrę od innego znaku odróżnisz za pomocą isdigit(), a pobieranie znaków do czasu natrafienia na coś innego możesz zrobić w pętli while

0

Używaj google. Dla większości podstawowych problemów takich jak ten rozwiązań jest mnóstwo, wystarczy poszukać. Szukając i próbując samemu nauczysz się więcej i szybciej niż czekając na odpowiedzi.

http://www.cplusplus.com/reference/cctype/isdigit/
https://stackoverflow.com/questions/8611815/determine-if-char-is-a-num-or-letter

0

Przecież to się nawet nie kompiluje. Poza tym nie idzie tego czytać, tak ciężko jest po ludzku sformatować kod?

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
    printf("Podaj 10 liczb\n");
    int i, a = 1, ilo = 1;
    for (i; i; i) {

        scanf("%d", &a);
        ilo *= a;
        printf("Iloczyn %d", ilo);
        if (a = ) {
            printf("Blad danych wejsciowych");
            break;
        }
    }
    printf("Suma 10 liczb wynosi%d ", ilo);
    return 0;
}

Poza tym, dlaczego piszesz "suma" o iloczynie?

0

Nie bardzo wiem co jest nie tak.

#include <stdio.h>
#include <stdlib.h>
#include <cctype>
#include <locale.h>
int main(void)
{
    printf("Podaj liczby\n");
    int i, a = 1, ilo = 1;
    for (;;) 
	{
 
        scanf("%d", &a);
        if(isdigit(a))
		{
		ilo *= a;
        printf("Iloczyn %d", ilo);
		}
        else 
		{
            printf("Blad danych wejsciowych");
            break;
        }
    }
    printf("Iloczyn liczb wynosi%d ", ilo);
    return 0;
}
0

Mnożysz przez wartość ASCII (albo kodowania na twojej platformie) cyfry, a nie jej wartość dziesiętną. ilo *= a - '0'

1 użytkowników online, w tym zalogowanych: 0, gości: 1