PDA

View Full Version : سوال: جمع دو عدد خیلی بزرگ با هم دیگر



mhzarei76
یک شنبه 13 دی 1394, 08:45 صبح
با سلام من یک کدی نوشتم که با اشاره گره اول تعداد دو عدد رو میگره بعد با هم جمع میکنه اما درست کار نمیکنه لطفا راهنمایی کنید کجاش مشکل داره
#include <stdio.h>#include <stdlib.h>
#include <conio.h>


int main()
{
char *p1,*p2,*sum;
int n,i,k=0,s,l,j=0;
printf ("please enter the item number (N) : \n");
scanf("%d",&n);
l=n+1;
p1=(char *)malloc(sizeof(char)*n);
p2=(char *)malloc(sizeof(char)*n);
sum=(char *)malloc(sizeof(char)*l);
printf ("please enter the number one :\n");
for(i=0;i<n;i++){
*(p1+i)=getche();
}
printf("\n");
printf ("please enter the number two :\n");
for(i=0;i<n;i++){
*(p2+i)=getche();
}


for(i=n-1;i>=0;i--){
*(p1+i)=*(p1+i)-48;
*(p2+i)=*(p2+i)-48;
k=k+(*(p1+i))+(*(p2+i));


// printf("%d\n",k);
if(k>9){
s=k%10;
k=k/10;
*(sum+j)=s+48;
}
else{
*(sum+j)=k+48;


k=0;
}
j++;


//printf("%d\n",k);
}
for(i=0;i<l;i++){
printf("%s",*(sum+j));
}
//return 0;
}



:متفکر:

saeid5977
یک شنبه 13 دی 1394, 09:03 صبح
for(i=0;i<l;i++){
printf("%s",*(sum+j));
}


:متفکر:

سلام
خیلی دقت نکردم به کدت اما اون حلقه آخر فکر کنم اشتباه تایپی کردی و جای i نوشتی j . تعریف متغیرهای حلقه اگر تو اسکوپ حلقه باشه جلوی اینجور اشتباههای تایپی گرفته میشه. موفق باشی.

mhzarei76
یک شنبه 13 دی 1394, 10:02 صبح
با سلام ممنون از لطف شما خودم یک مقدار کد رو تغییر دادم درست شد باز هم ممنون ؛این هم کد برای همه برنامه نویس های عزیز :
#include <stdio.h>#include <stdlib.h>
#include <conio.h>


int main()
{
char *p1,*p2,*sum;
int n,i,k=0,s,l,j=0;
printf ("please enter the item number (N) : \n");
scanf("%d",&n);
l=n+1;
p1=(char *)malloc(sizeof(char)*n);
p2=(char *)malloc(sizeof(char)*n);
sum=(char *)malloc(sizeof(char)*l);
printf ("please enter the number one :\n");
for(i=0;i<n;i++){
*(p1+i)=getche();
}
printf("\n");
printf ("please enter the number two :\n");
for(i=0;i<n;i++){
*(p2+i)=getche();
}


for(i=n-1;i>=0;i--){
*(p1+i)=*(p1+i)-48;
*(p2+i)=*(p2+i)-48;
k=k+(*(p1+i))+(*(p2+i));


// printf("%d\n",k);
if(k>9){
s=k%10;
k=k/10;
*(sum+j)=s+48;
}
else{
*(sum+j)=k+48;


k=0;
}
j++;


//printf("%d\n",k);
}
printf("\n");
printf("%d",k);
for(i=l-2;i>=0;i--){
printf("%c",*(sum+i));
}
//printf("%d",18/10);
//return 0;
}



:چشمک: