不知道底程式碼哪裡有錯了?!
麻煩大大幫忙看一下,糾正一下我錯在哪
看了很久還是找不出來= =
謝謝!!
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
char number1[300];
char number2[300];
while(cin >> number1 >> number2)
{
int temp1[300]={0}; // 先宣告兩個int陣列用來儲存輸入的數字
int temp2[300]={0};
int len1=strlen(number1);
for(int i=0;i<len1;i++)
temp1[i]=number1[len1-1-i]-48; // 儲存方式為reverse
int len2=strlen(number2);
for(int i=0;i<len2;i++)
temp2[i]=number2[len2-1-i]-48; // 儲存方式為reverse
int temp3[300]={0}; // 用來儲存兩者計算完後的數字
int position;
for(int i=0;i<len1;i++)
{
for(int j=0;j<len2;j++,position++)
temp3[position]+=temp1[i]*temp2[j];
}
int carry; // 進位
for(int i=0;i<position;i++) // 判斷數字是否有大於等於10
{
carry=temp3[i]/10; // 判斷進位的數字
temp3[i+1]+=carry; // 在下一位數加上進位的數字
temp3[i]%=10;
if(carry != 0 && i+1 == position) // 若是在temp1的最後一位數*temp2的最後一位數有要進位的話,則位數+1
position++;
}
for(int i=position-1;i>=0;i--)
cout << temp3[i];
cout << endl;
}
return 0;
}
不知道底程式碼哪裡有錯了?!
麻煩大大幫忙看一下,糾正一下我錯在哪
看了很久還是找不出來= =
謝謝!!
#include
#include
using namespace std;
int main()
{
char number1[300];
char number2[300];
while(cin >> number1 >> number2)
{
int temp1[300]={0}; // 先宣告兩個int陣列用來儲存輸入的數字
int temp2[300]={0};
int len1=strlen(number1);
for(int i=0;i
temp1[i]=number1[len1-1-i]-48; // 儲存方式為reverse
int len2=strlen(number2);
for(int i=0;i
temp2[i]=number2[len2-1-i]-48; // 儲存方式為reverse
int temp3[300]={0}; // 用來儲存兩者計算完後的數字
int position;
for(int i=0;i
{
for(int j=0;j
temp3[position]+=temp1[i]*temp2[j];
}
int carry; // 進位
for(int i=0;i
{
carry=temp3[i]/10; // 判斷進位的數字
temp3[i+1]+=carry; // 在下一位數加上進位的數字
temp3[i]%=10;
if(carry != 0 && i+1 == position) // 若是在temp1的最後一位數*temp2的最後一位數有要進位的話,則位數+1
position++;
}
for(int i=position-1;i>=0;i--)
cout << temp3[i];
cout << endl;
}
return 0;
}
不知道底程式碼哪裡有錯了?!
麻煩大大幫忙看一下,糾正一下我錯在哪
看了很久還是找不出來= =
謝謝!!
#include
#include
using namespace std;
int main()
{
char number1[300];
char number2[300];
while(cin >> number1 >> number2)
{
int temp1[300]={0}; // 先宣告兩個int陣列用來儲存輸入的數字
int temp2[300]={0};
int len1=strlen(number1);
for(int i=0;i
temp1[i]=number1[len1-1-i]-48; // 儲存方式為reverse
int len2=strlen(number2);
for(int i=0;i
temp2[i]=number2[len2-1-i]-48; // 儲存方式為reverse
int temp3[300]={0}; // 用來儲存兩者計算完後的數字
int position;
for(int i=0;i
{
for(int j=0;j
temp3[position]+=temp1[i]*temp2[j];
}
int carry; // 進位
for(int i=0;i
{
carry=temp3[i]/10; // 判斷進位的數字
temp3[i+1]+=carry; // 在下一位數加上進位的數字
temp3[i]%=10;
if(carry != 0 && i+1 == position) // 若是在temp1的最後一位數*temp2的最後一位數有要進位的話,則位數+1
position++;
}
for(int i=position-1;i>=0;i--)
cout << temp3[i];
cout << endl;
}
return 0;
}
不好意思!!因為放上來時不小心動到
int position; ---> int position=0;
不知道底程式碼哪裡有錯了?!
麻煩大大幫忙看一下,糾正一下我錯在哪
看了很久還是找不出來= =
謝謝!!
#include
#include
using namespace std;
int main()
{
char number1[300];
char number2[300];
while(cin >> number1 >> number2)
{
int temp1[300]={0}; // 先宣告兩個int陣列用來儲存輸入的數字
int temp2[300]={0};
int len1=strlen(number1);
for(int i=0;i
temp1[i]=number1[len1-1-i]-48; // 儲存方式為reverse
int len2=strlen(number2);
for(int i=0;i
temp2[i]=number2[len2-1-i]-48; // 儲存方式為reverse
int temp3[300]={0}; // 用來儲存兩者計算完後的數字
int position;
for(int i=0;i
{
for(int j=0;j
temp3[position]+=temp1[i]*temp2[j];
}
int carry; // 進位
for(int i=0;i
{
carry=temp3[i]/10; // 判斷進位的數字
temp3[i+1]+=carry; // 在下一位數加上進位的數字
temp3[i]%=10;
if(carry != 0 && i+1 == position) // 若是在temp1的最後一位數*temp2的最後一位數有要進位的話,則位數+1
position++;
}
for(int i=position-1;i>=0;i--)
cout << temp3[i];
cout << endl;
}
return 0;
}
不好意思!!因為放上來時不小心動到
int position; ---> int position=0;
不知道底程式碼哪裡有錯了?!
麻煩大大幫忙看一下,糾正一下我錯在哪
看了很久還是找不出來= =
謝謝!!
#include
#include
using namespace std;
int main()
{
char number1[300];
char number2[300];
while(cin >> number1 >> number2)
{
int temp1[300]={0}; // 先宣告兩個int陣列用來儲存輸入的數字
int temp2[300]={0};
int len1=strlen(number1);
for(int i=0;i
temp1[i]=number1[len1-1-i]-48; // 儲存方式為reverse
int len2=strlen(number2);
for(int i=0;i
temp2[i]=number2[len2-1-i]-48; // 儲存方式為reverse
int temp3[300]={0}; // 用來儲存兩者計算完後的數字
int position;
for(int i=0;i
{
for(int j=0;j
temp3[position]+=temp1[i]*temp2[j];
}
int carry; // 進位
for(int i=0;i
{
carry=temp3[i]/10; // 判斷進位的數字
temp3[i+1]+=carry; // 在下一位數加上進位的數字
temp3[i]%=10;
if(carry != 0 && i+1 == position) // 若是在temp1的最後一位數*temp2的最後一位數有要進位的話,則位數+1
position++;
}
for(int i=position-1;i>=0;i--)
cout << temp3[i];
cout << endl;
}
return 0;
}
不好意思!!因為放上來時不小心動到
int position; ---> int position=0;
不好意思!! 還是不懂Q_Q...
為什麼不會存到它應該到的位置??
可以說清楚一點嗎?! 感恩Q_Q
不知道底程式碼哪裡有錯了?!
麻煩大大幫忙看一下,糾正一下我錯在哪
看了很久還是找不出來= =
謝謝!!
#include
#include
using namespace std;
int main()
{
char number1[300];
char number2[300];
while(cin >> number1 >> number2)
{
int temp1[300]={0}; // 先宣告兩個int陣列用來儲存輸入的數字
int temp2[300]={0};
int len1=strlen(number1);
for(int i=0;i
temp1[i]=number1[len1-1-i]-48; // 儲存方式為reverse
int len2=strlen(number2);
for(int i=0;i
temp2[i]=number2[len2-1-i]-48; // 儲存方式為reverse
int temp3[300]={0}; // 用來儲存兩者計算完後的數字
int position;
for(int i=0;i
{
for(int j=0;j
temp3[position]+=temp1[i]*temp2[j];
}
int carry; // 進位
for(int i=0;i
{
carry=temp3[i]/10; // 判斷進位的數字
temp3[i+1]+=carry; // 在下一位數加上進位的數字
temp3[i]%=10;
if(carry != 0 && i+1 == position) // 若是在temp1的最後一位數*temp2的最後一位數有要進位的話,則位數+1
position++;
}
for(int i=position-1;i>=0;i--)
cout << temp3[i];
cout << endl;
}
return 0;
}
不好意思!!因為放上來時不小心動到
int position; ---> int position=0;
不好意思!! 還是不懂Q_Q...
為什麼不會存到它應該到的位置??
可以說清楚一點嗎?! 感恩Q_Q
不知道底程式碼哪裡有錯了?!
麻煩大大幫忙看一下,糾正一下我錯在哪
看了很久還是找不出來= =
謝謝!!
#include
#include
using namespace std;
int main()
{
char number1[300];
char number2[300];
while(cin >> number1 >> number2)
{
int temp1[300]={0}; // 先宣告兩個int陣列用來儲存輸入的數字
int temp2[300]={0};
int len1=strlen(number1);
for(int i=0;i
temp1[i]=number1[len1-1-i]-48; // 儲存方式為reverse
int len2=strlen(number2);
for(int i=0;i
temp2[i]=number2[len2-1-i]-48; // 儲存方式為reverse
int temp3[300]={0}; // 用來儲存兩者計算完後的數字
int position;
for(int i=0;i
{
for(int j=0;j
temp3[position]+=temp1[i]*temp2[j];
}
int carry; // 進位
for(int i=0;i
{
carry=temp3[i]/10; // 判斷進位的數字
temp3[i+1]+=carry; // 在下一位數加上進位的數字
temp3[i]%=10;
if(carry != 0 && i+1 == position) // 若是在temp1的最後一位數*temp2的最後一位數有要進位的話,則位數+1
position++;
}
for(int i=position-1;i>=0;i--)
cout << temp3[i];
cout << endl;
}
return 0;
}
不好意思!!因為放上來時不小心動到
int position; ---> int position=0;
不好意思!! 還是不懂Q_Q...
為什麼不會存到它應該到的位置??
可以說清楚一點嗎?! 感恩Q_Q
恩...可是,position在第一層迴圈實有把i指定給position
後面position都會在第二層迴圈++呢!!
這種跟i+j不同意思嗎?!
另外,我剛剛把我原本po的程式碼放在編譯器裡,發現怪怪的= =
好像是我放上去之後有動到程式碼吧== 不好意思喔!!
我在po一次,這個是上傳的程式碼,這次我不動它了!!
至於position沒有宣告初始值是因為在第一層迴圈內有宣告
再次說聲抱歉!!
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
char number1[300];
char number2[300];
while(cin >> number1 >> number2)
{
int temp1[300]={0};
int temp2[300]={0};
int len1=strlen(number1);
for(int i=0;i<len1;i++)
temp1[i]=number1[len1-1-i]-48;
int len2=strlen(number2);
for(int i=0;i<len2;i++)
temp2[i]=number2[len2-1-i]-48;
int temp3[300]={0};
int position;
for(int i=0;i<len1;i++)
{
position=i;
int carry;
for(int j=0;j<len2;j++,position++)
temp3[position]+=temp1[i]*temp2[j];
}
int carry;
for(int i=0;i<position;i++)
{
carry=temp3[i]/10;
temp3[i+1]+=carry;
temp3[i]%=10;
if(carry != 0 && i+1 == position)
position++;
}
for(int i=position-1;i>=0;i--)
cout << temp3[i];
cout << endl;
}
return 0;
}