居裡貓今天考了C語言的程式考試,在這邊分享一下我的解答方式!
從 txt 檔案中讀入一串由大寫 A~Z 組成的文字,將這些文字由下列規則轉換為數字。
2 A B C
3 D E F
4 G H I
5 J K L
6 M N O
7 P Q
8 T U V
9 W X Z
如果文字為 R ,判斷前一個文字為 U 時,對印數字為 2,若不是 U 數字為 7。
如果文字為 S ,判斷前一個文字為 E 時,對印數字為 1,若不是 U 數字為 2。
如果文字為 Y ,判斷前一個文字為 R 時,對印數字為 1,若不是 U 數字為 0。
以下是居裡貓的程式碼:
#include<stdio.h>
#include<string.h>
#include<fstream.h>
#include<iostream.h>
void main()
{
char str[100]; //存放字元用
ifstream fip("a.txt");
fip.getline(str,100,'\n');
cout << str << endl << "Ans=";
int i,len1;
len1=strlen(str);
for(i=0;i<len1;i++) // for 迴圈執行字串判斷
{
//判斷字元,輸出對應數字
if(str[i]=='A' || str[i]=='B' || str[i]=='C')
{
cout << "2";
}
else if(str[i]=='D' || str[i]=='E' || str[i]=='F')
{
cout << "3";
}
else if(str[i]=='G' || str[i]=='H' || str[i]=='I')
{
cout << "4";
}
else if(str[i]=='J' || str[i]=='K' || str[i]=='L')
{
cout << "5";
}
else if(str[i]=='M' || str[i]=='N' || str[i]=='O')
{
cout << "6";
}
else if(str[i]=='P' || str[i]=='Q')
{
cout << "7";
}
else if(str[i]=='T' || str[i]=='U' || str[i]=='V')
{
cout << "8";
}
else if(str[i]=='W' || str[i]=='X' || str[i]=='Z')
{
cout << "9";
}
else if(str[i]=='R')
{
if(str[i-1]=='U')
cout << "2";
else
cout << "7";
}
else if(str[i]=='S')
{
if(str[i-1]=='E')
cout << "1";
else
cout << "2";
}
else if(str[i]=='Y')
{
if(str[i-1]=='R')
cout << "1";
else
cout << "0";
}
}
fip.close();
}
以下為輸出結果(一):
txt 檔案內容為:
HURRYUP
輸出結果(二):
txt 檔案內容為:
THERESEAR
以上簡單的分享,希望大家還看得下去!
這麼好..送分題阿~
回覆刪除呵呵,對呀!送很大
回覆刪除