Καλησπέρα σας.
Έχει κανείς να μου προτείνει έναν τρόπο για να χωρίζω έναν αριθμό τα ψηφία του δηλαδή, στην C και μετά να κάνω πράξεις με αυτούς;
Δηλαδή, έστω ότι έχω το 123 να το κάνω 1 2 3
Κανείς;




int digits=3 //πλήθος ψηφίων
int n=digits-1 //μέγιστη τεκθέτη βάσης
int number=123//αριθμός για είσοσο
int result[digits]//Πίνακας για να αποθηκεύουμε τα ψηφία όπου έχουμε "σπάσει"
int i=0;
do
{
result[i]=number/10^n //σπαμε
number=number-result[i]*10^n // τοφαιρούμε από το αρχικό αριθμό
n-- //μειώνουμε τον εκθέτη
i++ //πάμε στην επόμενη θέση του πίνακα
}
while(n!=0)
#include <stdio.h>
#define MAXDIGITS 25+1
int main( void )
{
int digits[ MAXDIGITS ] = {0}, num, i;
scanf( "%d", &num );
for (i=0; (digits[i] = num % 10) != 0; i++ )
num /= 10;
while ( --i > -1 )
printf( "%d ", digits[i] );
return 0;
}



#include <stdio.h>
#include <stdlib.h>
int main(){
int sum,k=0,number1=0,number=123456;
number1=number;
for(;number1!=0;k=number1%10,sum+=k,number1/=10);
printf("\na8roisma twn psifiwn tou %d=%d\n",number,sum);
getchar();
return 0;
}
maenolis έγραψε:Κάτι ενδιαφέρον που είδα γι αυτό το θέμα είναι αυτό
- Κώδικας: Επιλογή όλων
#include <stdio.h>
#include <stdlib.h>
int main(){
int sum,k=0,number1=0,number=123456;
number1=number;
for(;number1!=0;k=number1%10,sum+=k,number1/=10);
printf("\na8roisma twn psifiwn tou %d=%d\n",number,sum);
getchar();
return 0;
}
Για μένα το θεωρώ ωραίο ναι μεν , αφαιρετικό αλλά μετά απο καιρό θα το δεις και δεν θα καταλάβεις τι έγραψες...Πήγε περίπατο η αναγνωσιμότητα!!Πάντως πραγματικά υπάρχουν πάρα πολλοί τρόποι για να το αντιμετωπίσει κανείς αυτό το θέμα.
