Ребята Помогите пожалуйста,прегрузить ввод/вывод
#include <conio.h>
#include <ctype.h>
#include <string.h>
#include <stdlib.h>
#include <iostream.h>
#include <string>
using namespace std;
class abop{
char a[100];//string
int n;
friend void nol(abop &a, int&,int);
public:
abop(){strcpy(a,"");n=0;}
friend abop operator *(abop &a,abop &b);
friend void del(abop a, abop b,abop &c, abop &l);
friend abop& pervl(abop a,abop b);
void vvod();
void vivod();
};
//Ввод данных
void abop::vvod()
{
int i=0;
printf("‚ўҐ¤ЁвҐ зЁб«®: ");
strcpy(a,"");
gets(a);
n=strlen(a);
//printf("%d",n);
for(i=0; i<n; i++) a-=48;
}
//Вывод результата
void abop::vivod()
{
for(int i=0; i<n; i++) printf("%d", a);
}
// Дополняем нулями
void nol(abop &a,int &m, int n)
{
int i,j;
for(i=0; i<n-m; i++)
for(j=n-1; j>0; j--) a.a[j]=a.a[j-1];
for(i=0; i<n-m; i++) a.a=0;
m=n;
}
// Умножение
abop operator *(abop &a,abop &b)
{
abop c;
int i,j,l,o;
//Обнуляем резултат
c.n=a.n+b.n;
for(i=0; i<a.n+b.n; i++)
c.a=0;
//Умножение
for(i=0; i<b.n; i++) {
o=0; l=0;
for(j=a.n-1; j>=0; j--) {
c.a[j+b.n-i]+=(a.a[j]*b.a[b.n-1-i] + o)%2;
if(c.a[j+b.n-i]>1) {
l=c.a[j+b.n-i]/2;
c.a[j+b.n-i]=c.a[j+b.n-i]%2;
}
o=(a.a[j]*b.a[b.n-i-1] + o)/2+l;
if(j==0) c.a[j+b.n-1-i]+=o;
l=0;
}
}
//Избавляемся от ведущих нулей
//n=n+m;
while(c.a[0]==0) {
for(j=0; j<c.n-1; j++)
c.a[j]=c.a[j+1];
if(c.n!=1) c.n--; else break;
}
return c;
}
int main()
{
abop a, b, c, // Частное
m, // Вычитаемое
l; // Остаток
printf("‚лзЁв ЁҐ\n\n");
// Инициализация
a.vvod(); b.vvod();
// Вычитание
c=(a*b);
// Вывод ответа
printf("ЋвўҐв: ");
c.vivod();
return 0;
}
Спасибо)
покажи хоть
Цитата: UserNet2008
Как и ты.
Цитата: Meander
Цитата: UserNet2008
Как и ты.
Пусть будет так.
Вас как я понял из за угла(или googleМ) ЮМОРОМ напугали.
Цитата: UserNet2008
Цитата: Meander
Цитата: UserNet2008
Как и ты.
Пусть будет так.
Вас как я понял из за угла(или googleМ) ЮМОРОМ напугали.
Как и тебя?