Răspuns :
Răspuns:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int returneazaValoare(char caracterulCurent);
int sumaCifrelor(int nrCurent);
int main()
{
char numarulInitial[25];
printf("Introdu numarul ( de exemplu 32A ) >> ");
scanf("%s", numarulInitial);
int cifraDeControl = 0;
for (int i = 0; i < (int)(strlen(numarulInitial)); i++)
cifraDeControl += returneazaValoare(numarulInitial[i]);
while (cifraDeControl >= 10)
cifraDeControl = sumaCifrelor(cifraDeControl);
printf("sumaCifre >> %d\n", cifraDeControl);
return 0;
}
int returneazaValoare(char caracterulCurent)
{
switch (caracterulCurent)
{
case '1':
return 1;
case '2':
return 2;
case '3':
return 3;
case '4':
return 4;
case '5':
return 5;
case '6':
return 6;
case '7':
return 7;
case '8':
return 8;
case '9':
return 9;
case 'A':
return 10;
case 'B':
return 11;
case 'C':
return 12;
case 'D':
return 13;
case 'E':
return 14;
case 'F':
return 15;
case 'G':
return 16;
case 'H':
return 17;
case 'I':
return 18;
case 'J':
return 19;
case 'K':
return 20;
case 'L':
return 21;
case 'M':
return 22;
case 'N':
return 23;
case 'O':
return 24;
case 'P':
return 25;
case 'Q':
return 26;
case 'R':
return 27;
case 'S':
return 28;
case 'T':
return 29;
case 'U':
return 30;
case 'V':
return 31;
case 'W':
return 32;
case 'X':
return 33;
case 'Y':
return 34;
case 'Z':
return 35;
default:
return -999;
}
}
int sumaCifrelor(int varNr)
{
int sumaCifre = 0;
while (varNr)
{
sumaCifre += varNr % 10;
varNr /= 10;
}
return sumaCifre;
}
Explicație:
Salvezi „numărul” într-un șir de caractere după ai funcția returneazaValoare(...) care returnează valoarea caracterului și o adună în cifraDeControl. În while efectiv atribui suma cifrelor cifreiDeControl cât timp cifraDeControl e mai mare sau egală decât 10 ( că practic sumaDeControl trebuie să fie formată dintr-o cifră ) și la final printezi variabila.
Vă mulțumim că ați vizitat site-ul nostru dedicat Informatică. Sperăm că informațiile oferite v-au fost de ajutor. Dacă aveți întrebări sau nevoie de asistență suplimentară, nu ezitați să ne contactați. Ne vedem curând și nu uitați să ne adăugați la marcaje!