OK, so dass der Zweck dieses Codes ist, Benutzer für eine Ganzzahl dann zu fragen, das Programm wird jede Ziffer 0-9 und es Nummer des Auftretens in der vom Benutzer bereitgestellten Nummer ausdrucken. der Ausgang sollte so etwas wie diesestecken auf diesem C-Code
Enter a number: 28666
0 is repeated 0 times.
1 is repeated 0 times.
2 is repeated 1 times.
3 is repeated 0 times.
4 is repeated 0 times.
5 is repeated 0 times.
6 is repeated 3 times.
7 is repeated 0 times.
8 is repeated 1 times.
9 is repeated 0 times.
hier sehen ist mein Code und Ausgang so weit.
#include <stdbool.h>
#include <stdio.h>
int main(void)
{
bool digit_seen[10] = {false};
int digit;
long n;
printf("Enter a number: ");
scanf("%ld", &n);
while (n > 0) {
digit = n % 10;
if (digit_seen[digit])
break;
digit_seen[digit] = true;
n /= 10;
}
if (n > 0)
for(int i=0; i<digit; i++)
digit_seen[i]++;
for(int i=0; i<digit; i++)
printf(" %d is occur %d times \n",i,digit_seen[i]);
if (n < 0)
printf("No repeated digit\n");
return 0;
}
hier ist mein Ausgang
Enter a number: 147795655
0 is occur 1 times
1 is occur 1 times
2 is occur 1 times
3 is occur 1 times
4 is occur 1 times
wie Sie, ich bin nicht immer die Ausgabe ich brauche sehen kann und ich verstehe nicht, why.If mir jemand, wo ich werde verstehen helfen könnte falsch das wäre eine große Hilfe, danke.
'bool digit_seen [10] = {falsch};' -> 'int digit_seen [10] = {0};'. Denken Sie daran: Sie zählen die Vorkommen, wie in 'digit_seen [i] ++;'. –
Sind negative Zahlen nicht erlaubt, Ziffern zu wiederholen? Warum wird das letzte 'if (...)' verwendet? –