Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- void afisare(int vector[201])
- {
- for(int i = vector[0]; i > 0; i--)
- printf("%d", vector[i]);
- }
- void suma(int numar1[201], int numar2[201], int suma_mare[201])
- {
- int t = 0, n;
- if(numar1[0] < numar2[0])
- {
- n = numar2[0];
- for(int i = numar1[0] + 1; i <= numar2[0]; i++)
- numar1[i] = 0;
- }
- else
- {
- n = numar1[0];
- for(int i = numar2[0] + 1; i <= numar1[0]; i++)
- numar2[i] = 0;
- }
- int i;
- for(i = 1; i <= n; i++)
- {
- int cifra = numar1[i] + numar2[i] + t;
- suma_mare[i] = cifra % 10;
- t = cifra/10;
- }
- if(t)
- suma_mare[i] = t;
- else
- i--;
- suma_mare[0] = i;
- afisare(suma_mare);
- }
- void diferenta(int numar1[201], int numar2[201], int diferenta_mare[201]){
- if(numar1[0] < numar2[0])
- diferenta(numar2, numar1, diferenta_mare);
- else{
- int i, t = 0;
- for(i = 1; i <= numar1[0]; i++){
- diferenta_mare[i] = numar1[i] - numar2[i] + t;
- if(diferenta_mare[i] < 0){
- diferenta_mare[i] += 10;
- t = -1;
- }
- else
- t = 0;
- }
- i--;
- while(i && !diferenta_mare[i])
- i--;
- if(i == 0){
- printf("0");
- }
- else{
- diferenta_mare[0] = i;
- afisare(diferenta_mare);
- }
- }
- }
- void inmultire(int a[200], int numar){
- if(numar == 0){
- printf("0");
- return 0;
- }
- int i, t = 0;
- for(i = 1; i <= a[0]; i++){
- a[i] = a[i] * numar + t;
- t = a[i] / 10;
- a[i] = a[i] % 10;
- }
- while(t){
- a[++a[0]] = t % 10;
- t /= 10;
- }
- afisare(a);
- printf("\n");
- }
- int main()
- {
- int a[200] = {0}, b[200] = {0}, s[200] = {0}, d[200] = {0},scalar, chose, ok = 1;
- char x[200], y[200], z[200];
- printf("Primul numar = ");
- gets(x);
- printf("Al doilea numar = ");
- gets(y);
- a[0] = strlen(x);
- b[0] = strlen(y);
- for(int i = strlen(x) - 1; i >= 0; i--)
- {
- a[strlen(x) - i] = (int)(x[i] - '0');
- }
- for(int i = strlen(y) - 1; i >= 0; i--)
- {
- b[strlen(y) - i] = (int)(y[i] - '0');
- }
- int k;
- do{
- printf("\n<0>Iesire din program\n");
- printf("<1>Suma celor 2 numere\n");
- printf("<2>Diferenta celor 2 numere\n");
- printf("<3>Produsul unui numar oricat de mare cu o cifra\n");
- printf("Alege o optiune: ");
- scanf("%d", &k);
- switch(k){
- case 0: exit(0);
- case 1: suma(a, b, s); printf("\n");break;
- case 2: diferenta(a, b, d);printf("\n");break;
- case 3: printf("Introduceti scalarul: ");scanf("%d", &scalar);printf("Cu care dintre numere 1 sau 2?: ");scanf("%d", &chose);
- while(ok){if(chose == 1){inmultire(a, scalar);break;}else if(chose == 2){inmultire(b,scalar);break;}else {printf("Alegeti unul dintre cele doua numere 1 sau 2!: ");scanf("%d", &chose);}}
- }
- }while(k);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement