farzad.sharifi
چهارشنبه 29 خرداد 1387, 17:22 عصر
سلام دوستان
یه برنامه تو c نوشتم که دو تا عدد را از هم کم میکنه دو عدد رو بصورت رشته گرفتم بعد برای اینکه به عدد تبدیل کنم هر آرایه دو عدد منهای 48 کردم .این دو شرط هم در ورود دو عدد تعریف شده یکی اینه که دو عدد باید مثبت باشند و دومی اینه که عدد اول طولش باید از عدد دوم بیشتر باشه بعد یه حلقه نوشتم نمیدونم کجاش مشکل داره ممنون میشم راهنمائی کنید. در ضمن طول عدد بزرگتر با len و اختلاف طول دو عدد با def تعریف شده .
def=strlen(num1)-strlen(num2);
len=(strlen(num1)>=strlen(num2) ? strlen(num1): strlen (num2));
for(i=len-1;i>=0;--i)
{
if((num1[i]-48)>(num2[i-def]-48))
result[i+1]=(num1[i]-48)-(num2[i-def]);
else
{
if(i==0)
result[i+1]=(num1[i]-48)-(num2[i-def]);
else
{
if((num1[i]-48)<(num2[i-def]-48))
result[i+1]=((num1[i]-48)+10)-(num2[i-def]-48);
num1[i-1]=num1[i-1]-1;
}
}
}
یه برنامه تو c نوشتم که دو تا عدد را از هم کم میکنه دو عدد رو بصورت رشته گرفتم بعد برای اینکه به عدد تبدیل کنم هر آرایه دو عدد منهای 48 کردم .این دو شرط هم در ورود دو عدد تعریف شده یکی اینه که دو عدد باید مثبت باشند و دومی اینه که عدد اول طولش باید از عدد دوم بیشتر باشه بعد یه حلقه نوشتم نمیدونم کجاش مشکل داره ممنون میشم راهنمائی کنید. در ضمن طول عدد بزرگتر با len و اختلاف طول دو عدد با def تعریف شده .
def=strlen(num1)-strlen(num2);
len=(strlen(num1)>=strlen(num2) ? strlen(num1): strlen (num2));
for(i=len-1;i>=0;--i)
{
if((num1[i]-48)>(num2[i-def]-48))
result[i+1]=(num1[i]-48)-(num2[i-def]);
else
{
if(i==0)
result[i+1]=(num1[i]-48)-(num2[i-def]);
else
{
if((num1[i]-48)<(num2[i-def]-48))
result[i+1]=((num1[i]-48)+10)-(num2[i-def]-48);
num1[i-1]=num1[i-1]-1;
}
}
}