|
|
|
| Всем доброго дня. Помогите пожалуйста.
Ввожу две строки в виде цифр. Затем создаю два динамических массива, в которые поелементно помещаю строки.Необходимо вывести поэлементно каждый массив. затем обнулить недостающие елементы в одном из массивов (в том что меньше) для сложения этих двух чисел.
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
int main()
{
char ch1[5000];
int i,n1,*mas1,k;
cout<<"Vvedite chislo 1 = ";cin>>ch1;
n1=strlen(ch1);
mas1=new int[n1];
for(i=0; i<n1; i++) mas1[i]=ch1[i]-48;
for (i=0; i<n1; i++)
printf("%3d",mas1[i]);
cout<<endl;
char ch2[5000];
int n2,*mas2,*mas3;
cout<<"Vvedite chislo 2 = ";cin>>ch2;
n2=strlen(ch2);
mas2=new int[n2];
for(i=0; i<n2; i++) mas2[i]=ch2[i]-48;
for (i=0; i<n2; i++)
printf("%3d",mas2[i]);
cout<<endl;
int n;
n=0;
if (n1==n2) k=n1-1;
if (n2>n1) {n=n2-n1; for (i=0;i<=n1-1;i++) mas1[i+n]=mas1[i];
for (i=0;i<n;i++) mas1[i]=0;
for (i=0;i<=n2-1;i++) cout<<mas1[i];
k=n2-1;} n=0;
cout<<endl;
if (n1>n2) {n=n1-n2; for (i=0;i<=n2-1;i++) mas2[i+n]=mas2[i];
for (i=0;i<n;i++) mas2[i]=0;
for (i=0;i<=n1-1;i++) cout<<mas2[i];
k=n1-1;}
cout<<k;
getch();
}
Проблема в обнулении одного из массивов. В конце выводит левые цифры((( | |
|
|
|
|
|
|
|
для: ALEX_DNDZ
(20.10.2009 в 21:43)
| | А какие цифры вводите (чтобы можно было воспроизвести ситуацию)?
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
int main()
{
char ch1[5000];
int i,n1,*mas1,k;
cout<<"Vvedite chislo 1 = ";cin>>ch1;
n1=strlen(ch1);
mas1=new int[n1];
for(i=0; i<n1; i++) mas1[i]=ch1[i]-48;
for (i=0; i<n1; i++) printf("%3d",mas1[i]);
cout<<endl;
char ch2[5000];
int n2,*mas2,*mas3;
cout<<"Vvedite chislo 2 = ";cin>>ch2;
n2=strlen(ch2);
mas2=new int[n2];
for (i=0; i<n2; i++) mas2[i]=ch2[i]-48;
for (i=0; i<n2; i++) printf("%3d",mas2[i]);
cout<<endl;
int n;
n=0;
if (n1==n2) k=n1-1;
if (n2>n1) {
n=n2-n1;
for (i=0; i<=n1-1; i++) mas1[i+n] = mas1[i];
for (i=0; i<n; i++) mas1[i] = 0;
for (i=0; i<=n2-1; i++) cout<<mas1[i];
k=n2-1;
}
n=0;
cout<<endl;
if (n1>n2)
{
n=n1-n2;
for (i=0; i<=n2-1; i++) mas2[i+n]=mas2[i];
for (i=0; i<n; i++) mas2[i]=0;
for (i=0; i<=n1-1; i++) cout<<mas2[i];
k=n1-1;
}
cout<<k;
getch();
} |
| |
|
|
|