電話號碼翻譯(華為上機試題8_31_3)
下面的程式碼借鑑了華為上機試題中所給出原始碼的一點思路:
在貼程式碼前先看下這段不完善的程式碼:
..........
int i = 0;
char temp[100];
char ch;
while(ch != '\n')
{
scanf("%s%c",temp,&ch);
i++;
}
當從鍵盤輸入one two three[' five按下回車鍵後,通過除錯(黑體字為斷點)可以發現
i = 0 ;temp = one,ch = ' '
i = 1 ;temp = two, ch = ' '
i = 2 ;temp = three[' , ch = ' '
i = 3 ;temp = five, ch = ' \n'
這樣輸入的目地就是為了順利的取出空格作為分隔符所產生的字串。
注意:scanf("%s%c",temp,&ch)與scanf("%s,%c",temp,&ch)的區別。
...........
/*
* Author :zhuang_569* Time : 2014/9/9
* description : 翻譯電話號碼
* 題目:
* 將電話號碼one two ...nine zero翻譯成1 2 9 0
* 例如輸入:one two three輸出:123
* 輸入:one two double Two輸出:1222
* 輸入:1 two 2輸出:ERROR
* 輸入:double double two輸出:ERROR
*/
#include "iostream"
#include "string"
using namespace std;
typedef unsigned short int INT16U;
/**************函式宣告*******************/
void handle(void);
/**************全域性變數宣告*******************/
const char code[11][7] = {"zero","one","two","three","four","five","six","seven","eight","nine","double"};
char temp[100];
char end_sign= ' ';
int main(void)
{
handle();
return 0;
}
void handle(void)
{
int i = 0;
int double_flag = 0;//double符號的標誌位
//當出現兩個double當出錯處理
int back_up_val = 255;
intindex = 0;//統計輸入的待翻譯的電話號碼的數量
int decode[100];//存放翻譯後的電話號碼
int num = 0; //翻譯後的電話號碼數量
int match_flag = 0;//輸入的待翻譯的電話號碼是否正確標誌位
cout<<"請輸入待翻譯的電話號碼:";
while(end_sign!= '\n')
{
//輸入一串字元用空分割可以得到被分割的字元
//輸入一串字元one two three.temp可以分別等於one two three
scanf("%s%c",&temp,&end_sign);
index++;
for(i=0; i<11;i++)
{
if((strcmp(temp,code[i])==0))
{
match_flag = 1;//輸入匹配
if(i < 10)
{
if(double_flag == 1)
{
double_flag = 0;
decode[num++] = i;
decode[num++] = i;
}
else
{
decode[num++] = i;
}
}
else if(i == 10)
{
double_flag = 1;
if((index-back_up_val) == 1)
{
cout<<"ERROR";
return;
}
back_up_val = index;
}
break; //匹配後就跳出迴圈,節約時間
}
}
if(match_flag == 1)
{
match_flag = 0;
}
else
{
cout<<"ERROR";
return;
}
}
if(double_flag == 1)//輸入最後帶翻譯的電話號碼為double
{
cout<<"ERROR";
return;
}
cout<<"翻譯後的電話號碼是:";
//輸出譯碼後的電話號碼
for(i=0; i<num; i++)
{
cout<<decode[i];
}
cout<<endl;
}
測試結果:
相關推薦
電話號碼翻譯(華為上機試題8_31_3)
下面的程式碼借鑑了華為上機試題中所給出原始碼的一點思路: 在貼程式碼前先看下這段不完善的程式碼: .......... int i = 0; char temp[100]; char ch; while(ch != '\n') { scanf("%s%c",temp,&a
華為上機試題(java)找出一個字串中出現次數最多的字元
Java求字串中出現次數最多的字元,如String Str = "aaabbcddddee";那麼輸出:d 4 ;若String Str = "aaabbcddddeexxxxxx";那麼輸出:x 6 import java.util.*; import java.uti
整型陣列處理演算法(十三)求出用1,2,5這三個數不同個數組合的和為100的組合個數(華為校園招聘題)
寫一個程式, 要求功能:求出用1,2,5這三個數不同個數組合的和為100的組合個數。 如:100個1是一個組合,5個1加19個5是一個組合。。。。 請用C++語言寫。 下面用2中方法來
《Linux作業系統-系統移植》第8章 USB-4G/LTE移植 -第1節 USB-4G移植C(華為E392u924G移植)
1.3 PPP編譯 1.獲取原始碼 PPP官網下載:https://download.samba.org/pub/ppp/ 下載解壓ppp-2.4.7.tar.gz原始碼,存放在/home/farsig
計算字串最後一個單詞的長度,單詞以空格隔開。(華為線上程式設計題目)
import java.util.Scanner; import java.lang.String; public class Main { public static void main(String[] args){ Scanner sc = new
《Linux作業系統-系統移植》第8章 USB-4G/LTE移植 -第1節 USB-4G移植 F(華為E392u924G移植)
1.6啟動撥號指令碼 $mkdir shell_script $cd /shell_script $ vi usb.sh 輸入以下內容,然後儲存退出。 usb_modeswitch -W -c /etc
華為機試題(練習)
目錄 1、選秀節目打分 2、奇偶排序 3、作業系統任務排程問題。 4. 列印陣列中最大的2個數 5.迴文數字判斷。 6.中級題:亮著電燈的盞數 7.高階題:地鐵換乘 8.判斷if語句括號是否合法 9. 列印 楊輝三角形
華為面試題(8分鐘寫出程式碼) 有兩個陣列a,b,大小都為n,陣列元素的值任意,無序; 要求:通過交換a,b中的元素,使陣列a元素的和與陣列b元素的和之間的差最小
先上程式碼 java程式碼: public class MinDiff { public static void main(String[] args){ int[] aa={2,5,4,3,1,0}; int[] bb={7,9,8,10,6,11}
牛客華為機試題刷題筆記(一)
馬上華為提前批開始了,嚇得我趕緊上牛客網刷題,記錄如下: 所有程式碼都在github 1.字串最後一個單詞的長度 一段英文字串中最後一個單詞的長度。 題目比較簡單,做法有很多: 比如, 可以放到stringstream裡面split,拿到最後一個單詞
華為機試題--高鐵換乘(Floyed演算法)
題目: 已知2條地鐵線路,其中A為環線,B為東西向線路,線路都是雙向的。經過的站點名分別如下,兩條線交叉的換乘點用T1、T2表示。編寫程式,任意輸入兩個站點名稱,輸出乘坐地鐵最少需要經過的車站數量(含
華為上機筆試題之約瑟夫環
/* 題目描述 有一個數組a[N]順序存放0~N-1,要求每隔兩個數刪掉一個數,到末尾時迴圈至開頭繼續進行,求最後一個被刪掉的數的原始下標位置。以8個數(N=7)為例:{0,1,2,3,4,5,6,
華為上機考試注意事項及程式設計技巧(精品)
華為機試主要考察對程式語言的運用和簡單的演算法設計,雖說真金不怕火煉,但一些細小的問題可能會浪費很多時間,這在機試過程中是致命的,因此總結一下在機試中的一些注意事項。 1、時間安排。華為機試一共兩個小時,題量為三道題,如果將難度按照星等來劃分的話大體可分為兩種模式,第一種為一星或二星、三星、五星,第二種為二
華為機試題(一) 最高分是多少
老師想知道從某某同學當中,分數最高的是多少,現在請你程式設計模擬老師的詢問。當然,老師有時候需要更新某位同學的成績. 輸入描述: 輸入包括多組測試資料。 每組輸入第一行是兩個正整數N和M(0 <
華為機試題2016(一) 簡單錯誤記錄
一:簡單錯誤記錄 開發一個簡單錯誤記錄功能小模組,能夠記錄出錯的程式碼所在的檔名稱和行號。 處理: 1.記錄最多8條錯誤記錄,對相同的錯誤記錄(即檔名稱和行號完全匹配)只記錄一條,錯誤計數增加;(檔案所在的目錄不同,檔名和行號相同也要合併) 2.超過16個字元的檔名稱,只
華為面試題——約瑟夫問題的C++簡單實現(迴圈連結串列)
/* author:jiangxin Blog:http://blog.csdn.net/jiangxinnju Function:method of Josephus question */ #include <iostream> us
2015 年 9月份華為機試題 (2)幸運號
// HUAWEI_2.cpp : 定義控制檯應用程式的入口點。 ////找幸運號,petr是否存在,是否是幸運號,詳細描述見華為機試題(2)幸運號描述 #include"stdafx.h" #include<iostream> #include<asse
刪數字 -- 2016華為筆試題
for delet pub count 初始化 現在 || lin 答案 題目: 有一個整型數組a[n]順序存放0 ~ n-1,要求每隔兩個數刪掉一個數,到末尾時循環至開頭繼續進行,求最後一個被刪掉的數的原始下標位置。 以 8 個數(n=8)為例:{0,1,2,3,4,5,
個人作業——軟件產品案例分析(華為軟件開發雲)
開發人員 顯示 主界面 lock log 很多 第一次 印象 添加 個人作業——軟件產品案例分析(華為軟件開發雲) 第一部分調研、評測 一、評測 1.第一次使用體驗: 功能多,主界面很簡潔。 對於新手而言,第一次接觸華為軟件開發雲,沒有註冊登錄的話,就很難找到自己
進行hybrid鏈路配置(華為交換機實驗)
nal 1.4 日誌 erl def mar edit dex 運維 網絡運維 hybrid 實驗報告 姓名: 任永輝 班
如何實現私有地址訪問外網(華為)
src perm 分享 配置 5.0 其中 rip oss 9.png 操作步驟及思路:一.分別給pc1,pc2配上ip地址,子網掩碼,網關#pc1ip:192.168.1.1子網掩碼:255.255.255.0網關:192.168.1.254pc2ip:192.168.1