#include <iostream>
#include <string>
using namespace std;
string convert(char number);
int main()
{
string x;
int count = 0;
string output;
while(cin >> x)
{
count = x.length();
for(int i = 0;i < x.length();i++)
{
switch(count)
{
case 10:
if(x[i] != '0')
{
output += convert(x[i]);
output += "拾";
}
break;
case 9:
if(x[i] != '0')
{
output += convert(x[i]);
output += "億";
}
else
{
output += "億";
}
break;
case 8:
if(x[i] != '0')
{
output += convert(x[i]);
output += "仟";
}
else if(x[i] == '0' &&
(x[i + 1] != '0' || x[i + 2] != '0'
|| x[i + 3] != '0' || x[i + 4] != '0' || x[i + 5] != '0' || x[i + 6] != '0'))
{
output += "零";
}
break;
case 7:
if(x[i] != '0')
{
output += convert(x[i]);
output += "佰";
}
else if(x[i] == '0' &&
(x[i + 1] != '0' || x[i + 2] != '0'
|| x[i + 3] != '0' || x[i + 4] != '0' || x[i + 5] != '0'))
{
output += "零";
}
break;
case 6:
if(x[i] != '0')
{
output += convert(x[i]);
output += "拾";
}
else if(x[i] == '0' && (x[i + 1] != '0' || x[i + 2] != '0' || x[i + 3] != '0' || x[i + 4] != '0'))
{
output += "零";
}
break;
case 5:
if(x[i] != '0')
{
output += convert(x[i]);
output += "萬";
}
else
{
output += "萬";
}
break;
case 4:
if(x[i] != '0')
{
output += convert(x[i]);
output += "仟";
}
else if(x[i] == '0' && (x[i + 1] != '0' || x[i + 2] != '0' || x[i + 3] != '0'))
{
output += "零";
}
break;
case 3:
if(x[i] != '0')
{
output += convert(x[i]);
output += "佰";
}
else if(x[i] == '0' && (x[i + 1] != '0' || x[i + 2] != '0'))
{
output += "零";
}
break;
case 2:
if(x[i] != '0')
{
output += convert(x[i]);
output += "拾";
}
else if(x[i] == '0' && x[i + 1] != '0')
{
output += "零";
}
break;
case 1:
if(x[i] != '0')
{
output += convert(x[i]);
}
else if(x.length() == 1)
{
output += convert(x[i]);
}
break;
}
count--;
}
int j;
for(int k = 0;k < output.length();k++)
{
if((j = output.find("零零零")) != -1) output.erase(j,4);
if((j = output.find("零零")) != -1) output.erase(j,2);
if((j = output.find("億萬")) != -1) output.erase(j + 2,2);
if((j = output.find("零拾")) != -1) output.erase(j,2);
if((j = output.find("零萬")) != -1) output.erase(j,2);
if((j = output.find("零仟")) != -1) output.erase(j,2);
if((j = output.find("零佰")) != -1) output.erase(j,2);
if((j = output.find("零億")) != -1) output.erase(j,2);
}
cout << output << endl;
output = "";
}
return 0;
}
string convert(char number)
{
string str;
switch(number)
{
case '0':
str = "零";
break;
case '1':
str = "壹";
break;
case '2':
str = "貳";
break;
case '3':
str = "參";
break;
case '4':
str = "肆";
break;
case '5':
str = "伍";
break;
case '6':
str = "陸";
break;
case '7':
str = "柒";
break;
case '8':
str = "捌";
break;
case '9':
str = "玖";
break;
default:
cout << "ERROR!\n";
exit(1);
}
return str;
}
我問老師她說我第11行出錯 可是我不知道怎麼改 拜託哪位高手可以救我 我快哭ㄌ ㄒ^ㄒ
#include
#include
using namespace std;
string convert(char number);
int main()
{
string x;
int count = 0;
string output;
while(cin >> x)
{
count = x.length();
for(int i = 0;i < x.length();i++)
{
switch(count)
{
case 10:
if(x[i] != '0')
{
output += convert(x[i]);
output += "拾";
}
break;
case 9:
if(x[i] != '0')
{
output += convert(x[i]);
output += "億";
}
else
{
output += "億";
}
break;
case 8:
if(x[i] != '0')
{
output += convert(x[i]);
output += "仟";
}
else if(x[i] == '0' &&
(x[i + 1] != '0' || x[i + 2] != '0'
|| x[i + 3] != '0' || x[i + 4] != '0' || x[i + 5] != '0' || x[i + 6] != '0'))
{
output += "零";
}
break;
case 7:
if(x[i] != '0')
{
output += convert(x[i]);
output += "佰";
}
else if(x[i] == '0' &&
(x[i + 1] != '0' || x[i + 2] != '0'
|| x[i + 3] != '0' || x[i + 4] != '0' || x[i + 5] != '0'))
{
output += "零";
}
break;
case 6:
if(x[i] != '0')
{
output += convert(x[i]);
output += "拾";
}
else if(x[i] == '0' && (x[i + 1] != '0' || x[i + 2] != '0' || x[i + 3] != '0' || x[i + 4] != '0'))
{
output += "零";
}
break;
case 5:
if(x[i] != '0')
{
output += convert(x[i]);
output += "萬";
}
else
{
output += "萬";
}
break;
case 4:
if(x[i] != '0')
{
output += convert(x[i]);
output += "仟";
}
else if(x[i] == '0' && (x[i + 1] != '0' || x[i + 2] != '0' || x[i + 3] != '0'))
{
output += "零";
}
break;
case 3:
if(x[i] != '0')
{
output += convert(x[i]);
output += "佰";
}
else if(x[i] == '0' && (x[i + 1] != '0' || x[i + 2] != '0'))
{
output += "零";
}
break;
case 2:
if(x[i] != '0')
{
output += convert(x[i]);
output += "拾";
}
else if(x[i] == '0' && x[i + 1] != '0')
{
output += "零";
}
break;
case 1:
if(x[i] != '0')
{
output += convert(x[i]);
}
else if(x.length() == 1)
{
output += convert(x[i]);
}
break;
}
count--;
}
int j;
for(int k = 0;k < output.length();k++)
{
if((j = output.find("零零零")) != -1) output.erase(j,4);
if((j = output.find("零零")) != -1) output.erase(j,2);
if((j = output.find("億萬")) != -1) output.erase(j + 2,2);
if((j = output.find("零拾")) != -1) output.erase(j,2);
if((j = output.find("零萬")) != -1) output.erase(j,2);
if((j = output.find("零仟")) != -1) output.erase(j,2);
if((j = output.find("零佰")) != -1) output.erase(j,2);
if((j = output.find("零億")) != -1) output.erase(j,2);
}
cout << output << endl;
output = "";
}
return 0;
}
string convert(char number)
{
string str;
switch(number)
{
case '0':
str = "零";
break;
case '1':
str = "壹";
break;
case '2':
str = "貳";
break;
case '3':
str = "參";
break;
case '4':
str = "肆";
break;
case '5':
str = "伍";
break;
case '6':
str = "陸";
break;
case '7':
str = "柒";
break;
case '8':
str = "捌";
break;
case '9':
str = "玖";
break;
default:
cout << "ERROR!\n";
exit(1);
}
return str;
}
我問老師她說我第11行出錯 可是我不知道怎麼改 拜託哪位高手可以救我 我快哭ㄌ ㄒ^ㄒ
按照你的邏輯
似乎是
switch(count)
改成
switch( i )
?
#include
#include
using namespace std;
string convert(char number);
int main()
{
string x;
int count = 0;
string output;
while(cin >> x)
{
count = x.length();
for(int i = 0;i < x.length();i++)
{
switch(count)
{
case 10:
if(x[i] != '0')
{
output += convert(x[i]);
output += "拾";
}
break;
case 9:
if(x[i] != '0')
{
output += convert(x[i]);
output += "億";
}
else
{
output += "億";
}
break;
case 8:
if(x[i] != '0')
{
output += convert(x[i]);
output += "仟";
}
else if(x[i] == '0' &&
(x[i + 1] != '0' || x[i + 2] != '0'
|| x[i + 3] != '0' || x[i + 4] != '0' || x[i + 5] != '0' || x[i + 6] != '0'))
{
output += "零";
}
break;
case 7:
if(x[i] != '0')
{
output += convert(x[i]);
output += "佰";
}
else if(x[i] == '0' &&
(x[i + 1] != '0' || x[i + 2] != '0'
|| x[i + 3] != '0' || x[i + 4] != '0' || x[i + 5] != '0'))
{
output += "零";
}
break;
case 6:
if(x[i] != '0')
{
output += convert(x[i]);
output += "拾";
}
else if(x[i] == '0' && (x[i + 1] != '0' || x[i + 2] != '0' || x[i + 3] != '0' || x[i + 4] != '0'))
{
output += "零";
}
break;
case 5:
if(x[i] != '0')
{
output += convert(x[i]);
output += "萬";
}
else
{
output += "萬";
}
break;
case 4:
if(x[i] != '0')
{
output += convert(x[i]);
output += "仟";
}
else if(x[i] == '0' && (x[i + 1] != '0' || x[i + 2] != '0' || x[i + 3] != '0'))
{
output += "零";
}
break;
case 3:
if(x[i] != '0')
{
output += convert(x[i]);
output += "佰";
}
else if(x[i] == '0' && (x[i + 1] != '0' || x[i + 2] != '0'))
{
output += "零";
}
break;
case 2:
if(x[i] != '0')
{
output += convert(x[i]);
output += "拾";
}
else if(x[i] == '0' && x[i + 1] != '0')
{
output += "零";
}
break;
case 1:
if(x[i] != '0')
{
output += convert(x[i]);
}
else if(x.length() == 1)
{
output += convert(x[i]);
}
break;
}
count--;
}
int j;
for(int k = 0;k < output.length();k++)
{
if((j = output.find("零零零")) != -1) output.erase(j,4);
if((j = output.find("零零")) != -1) output.erase(j,2);
if((j = output.find("億萬")) != -1) output.erase(j + 2,2);
if((j = output.find("零拾")) != -1) output.erase(j,2);
if((j = output.find("零萬")) != -1) output.erase(j,2);
if((j = output.find("零仟")) != -1) output.erase(j,2);
if((j = output.find("零佰")) != -1) output.erase(j,2);
if((j = output.find("零億")) != -1) output.erase(j,2);
}
cout << output << endl;
output = "";
}
return 0;
}
string convert(char number)
{
string str;
switch(number)
{
case '0':
str = "零";
break;
case '1':
str = "壹";
break;
case '2':
str = "貳";
break;
case '3':
str = "參";
break;
case '4':
str = "肆";
break;
case '5':
str = "伍";
break;
case '6':
str = "陸";
break;
case '7':
str = "柒";
break;
case '8':
str = "捌";
break;
case '9':
str = "玖";
break;
default:
cout << "ERROR!\n";
exit(1);
}
return str;
}
我問老師她說我第11行出錯 可是我不知道怎麼改 拜託哪位高手可以救我 我快哭ㄌ ㄒ^ㄒ
按照你的邏輯
似乎是
switch(count)
改成
switch( i )
?
你的老師只是粗略地檢查 ..
我也是 ..
沒看到你的 count--
我有點follow不上你的想法 .
程式碼排版不是很好 ..
有空再看看囉 ...
你的老師只是粗略地檢查 ..
我也是 ..
沒看到你的 count--
我有點follow不上你的想法 .
程式碼排版不是很好 ..
有空再看看囉 ...