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 ales să vizitați site-ul nostru dedicat Informatică. Sperăm că informațiile disponibile v-au fost utile. Dacă aveți întrebări sau aveți nevoie de asistență suplimentară, vă rugăm să ne contactați. Revenirea dumneavoastră ne va bucura, iar pentru acces rapid, nu uitați să ne salvați la favorite!