Да се напише програма, която позволява да се въведат две цели числа (до 4 цифрени) и да демонстрира събиране между тях, като изведа числата и резултата едно под друго, подравнени вдясно. Над първото число да се поставят единици над разрядите, при които ще имаме пренасяне на единица от по-младшия разряд (т.е. когато ще имаме „и едно наум“). Например:
111
9874
+ 361
= 10235
По желание: Да се направи същото за 3 числа.


#include <iomanip.h> int x,x1,x2,x3,x4,y,y1,y2,y3,y4,z,z1,z2,z3,z4,t,p,n,m; cout<<"Vavedete tri tzeli chisla(max 4-tzifreni):"<<endl; cin>>x>>y>>z; //Razdelqme chislata na tzifri x4=x/1000; x3=(x/100)%10; x2=(x/10)%10; x1=x%10; y4=y/1000; y3=(y/100)%10; y2=(y/10)%10; y1=y%10; z4=z/1000; z3=(z/100)%10; z2=(z/10)%10; z1=z%10; //Proverka dali e nujno dopulnitelno subirane if(x1+y1+z1>=10){ t=(x1+y1+z1)/10; x2++; } if(x2+y2+z2>=10){ p=(x2+y2+z2)/10; x3++; } if(x3+y3+z3>=10){ n=(x3+y3+z3)/10; x4++; } if(x4+y4+z4>=10){ m=(x4+y4+z4)/10; } cout<<endl; //Otpechatvame dopulnitelnite subiraniq cout<<setw(2)<<m<<n<<p<<t<<endl; cout<<setw(6)<<x<<endl; cout<<"+"<<setw(5)<<y<<endl; cout<<"+"<<setw(5)<<z<<endl; cout<<"="<<setw(5)<<x+y+z<<endl; system("PAUSE"); return 0;Reshenie za tri chisla
Имаш малък пропуск – t,p,n,m може и да не се инициализират, ако не се влезе в съответното условие на if. Иначе – задачата не е лесна, супер че си намерил решение…
#include <iomanip.h> int x,x1,x2,x3,x4,y,y1,y2,y3,y4,z,z1,z2,z3,z4,t,p,n,m; cout<<"Vavedete tri tzeli chisla(max 4-tzifreni):"<<endl; cin>>x>>y>>z; //Razdelqme chislata na tzifri x4=x/1000; x3=(x/100)%10; x2=(x/10)%10; x1=x%10; y4=y/1000; y3=(y/100)%10; y2=(y/10)%10; y1=y%10; z4=z/1000; z3=(z/100)%10; z2=(z/10)%10; z1=z%10; //Zadavame purvonachalni stoinosti t=0; p=0; n=0; m=0; //Proverka dali e nujno dopulnitelno subirane if(x1+y1+z1>=10){ t=(x1+y1+z1)/10; x2++; } if(x2+y2+z2>=10){ p=(x2+y2+z2)/10; x3++; } if(x3+y3+z3>=10){ n=(x3+y3+z3)/10; x4++; } if(x4+y4+z4>=10){ m=(x4+y4+z4)/10; } cout<<endl; //Otpechatvame dopulnitelnite subiraniq cout<<setw(3); if(m>0) cout<<m; else cout<<" "; if(n>0) cout<<n; else cout<<" "; if(p>0) cout<<p; else cout<<" "; if(t>0) cout<<t; else cout<<" "; cout<<endl; cout<<setw(6)<<x<<endl; cout<<"+"<<setw(5)<<y<<endl; cout<<"+"<<setw(5)<<z<<endl; cout<<"="<<setw(5)<<x+y+z<<endl; system("PAUSE"); return 0;Ako moje iztriite predishnoto mi reshenie che zabravih da dobavq intervalite :)