華為校園招聘面試_第1頁
華為校園招聘面試_第2頁
華為校園招聘面試_第3頁
華為校園招聘面試_第4頁
華為校園招聘面試_第5頁
已閱讀5頁,還剩87頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、1輸入整型數(shù)組求數(shù)組的最小數(shù)和最大數(shù)之和,例如輸入1,2,3,4 則輸出為 5,當(dāng)輸入只有一個(gè)數(shù)的時(shí)候,則最小數(shù)和最大數(shù)都是該數(shù),例如只輸入1,則輸出為 2 ;另外數(shù)組的長度不超過 50參考代碼:#include<stdio.h> main()int num50=0;int i,n;printf( “請(qǐng)輸入整型數(shù)組的長度 (150) :” );scanf( “%d”,&n);printf( “請(qǐng)輸入整型數(shù)組的元素:” );for (i=0;i<n;i+)scanf( “%d” ,&numi);int min_num=num0;int max_num=num0;

2、for(int j=0;j<n;j+)if(max_num<numj)max_num=numj;else if(min_num>numj)min_num=numj;int sum=min_num+max_num;printf( “數(shù)組中最大與最小值之和: %dn”,sum);1233333333333333 。return 0;2求兩個(gè)長長整型的數(shù)據(jù)的和并輸出,例如輸入3111111111111111111111111.。,則輸出。#include<stdio.h> #include<string.h> #include<malloc.h>

3、 main()char *num1,*num2; / 兩個(gè)長長整型數(shù)據(jù)/char *sum;int temp;int len_num1,len_num2; / 兩個(gè)長長整型數(shù)據(jù)的長度int len_max,len_min;num1=(char*)malloc(sizeof(char);num2=(char*)malloc(sizeof(char);printf(輸入兩個(gè)長長整型數(shù)據(jù):” );scanf(%s”,num1);printf(輸入兩個(gè)長長整型數(shù)據(jù):” );scanf(%s”,num2);len_num1=strlen(num1);len_num2=strlen(num2);len_m

4、ax=(len_num1>=len_num2)? len_num1:len_num2;len_min=(len_num1<=len_num2)? len_num1:len_num2;int len_max1=len_max;sum=(char*)malloc(sizeof(char)*len_max);memset(sum,OX 00,len_max+1);/ 切忌初始化for(;len_num1>0&&len_num2>0;len_num1 - ,len_num2 -)sumlen_max-=(num1len_num1-1-' 0)+(num2

5、len_num2-1-'if(len_num1>0)sumIen_max-=num1Ien_num1 - 1 -' 0, ;Ien_num1 -;if(Ien_num2>0)sumIen_max-=num1Ien_num2 - 1-' 0, ;- ) / 實(shí)現(xiàn)進(jìn)位操作Ien_num2- ;for(int j=Ien_max1;j>=0;j/temp二sum|j- ' 0,;if(sumj>=10) sumj-1+=sumj/10;sumj%=10;char *outsum=(char*)maIIoc(sizeof(char)*Ien_ma

6、x1);j=0;while(sumj=0) / 跳出頭部 0 元素for(int m=0;m<len_max1;j+,m+)outsumm=sumj+ ' 0 ;outsumm=' 0 printf( “輸出兩長長整型數(shù)據(jù)之和 :%sn ”,outsum);return 0;3. 通過鍵盤輸入一串小寫字母 (az) 組成的字符串。請(qǐng)編寫一個(gè)字符串過濾程序, 若字符串中出現(xiàn)多個(gè)相同的字符,將非首次出現(xiàn)的字符過濾掉。比如字符串” abacacde”過濾結(jié)果為” abcde”char *pInputStr, long lInputLen, char要求實(shí)現(xiàn)函數(shù):void str

7、ingFilter(const *pOutputStr);輸入】 pInputStr :輸入字符串lInputLen :輸入字符串長度輸出】 pOutputStr :輸出字符串,空間已經(jīng)開辟好,與輸入字符串等長; 參考代碼:#include <stdio.h> #include<string.h> #include<malloc.h>void stringFilter(const char *p_str, long len, char *p_outstr) int array256=0;const char *tmp = p_str;for(int j=0;

8、j<len;j+)if(arraytmpj=0)*p_outstr+= tmpj;arraytmpj+;*p_outstr =void main()char *str =cccddecc”int len = strlen(str);char * outstr = (char *)malloc(len*sizeof(char);stringFilter(str,len,outstr);printf( “%sn”,outstr);free(outstr);outstr = NULL;5.通過鍵盤輸入100以內(nèi)正整數(shù)的加、減運(yùn)算式,請(qǐng)編寫一個(gè)程序輸出運(yùn)算結(jié)果 字符串。輸入字符串的格式為:”操作

9、數(shù)1運(yùn)算符操作數(shù)2,”操作數(shù)”與”運(yùn)算符” 之間以一個(gè)空格隔開。補(bǔ)充說明:1.操作數(shù)為正整數(shù),不需要考慮計(jì)算結(jié)果溢出的情況。2.若輸入算式格式錯(cuò)誤,輸出結(jié)果為” 0。要求實(shí)現(xiàn)函數(shù):voidarithmetic(c onst*p Out putStr);char*plnpu tStr,longlinpu tLe n,char【輸入】pinp utStr :輸入字符串llnputLen :輸入字符串長度【輸出】POutputStr :輸出字符串,空間已經(jīng)開辟好,與輸入字符串等長;#i nclude <stdio.h> #i ncludevstri ng.h> #in clude&

10、lt;stdlib.h> void arithmetic onst char *inpu t, l ong len, char *out put)char s110;char s210;char s310;int cnt = 0;int len_input=strlen(input);for(int i=0;i<len_input;+i)if(inputi=cnt+;if(cnt!=2)*output+ = ' o'*output = 0 'return;sscanf(input, ”%s %s %s”,s1,s2,s3);'+'&&

11、amp;s20!= '-')if (strlen(s2)!=1|(s2o!=*output+ ='O'*output =O ' ;return;int len_s1=strlen(s1);for(i=O;i<len_s1;i+)if(s1i<O' |s1i>' 9' )*output+ =' O' ;*output =O 'return;int len_s3=strlen(s3);for(i=O;i<len_s3;i+)if(s3i<'0T|s3i>' 9

12、 )*output+ =' 0 ;*output = 0 return;int x = atoi(s1);int y = atoi(s3);if(s20= ' +int result = x+y;itoa(result,output,10);else if(s20= ' -')int result = x-y;itoa(result,output,10);else*output+ =' 0 ;*output = 0 ;return;void main()char str = “ 10 - 23 ;char outstr10;int len = strle

13、n(str);arithmetic(str,len,outstr);printf(%sn”,str);printf(%sn”,outstr);,圍成一圈,從某人開始數(shù)到第三個(gè)的人出列,再接著從下一6. 一組人( n 個(gè)) 個(gè)人開始數(shù),最終輸出最終出列的人(約瑟夫環(huán)是一個(gè)數(shù)學(xué)的應(yīng)用問題:已知 n個(gè)人(以編號(hào)1, 2, 3n分別表示) 圍坐在一張圓桌周圍。從編號(hào)為k的人開始報(bào)數(shù),數(shù)到m的那個(gè)人出列;他的下一個(gè)人又從1開始報(bào)數(shù),數(shù)到m的那個(gè)人又出列;依此規(guī)律重復(fù)下去,直到圓桌周圍的人全部出列。)#include <stdio.h> #include<string.h> #in

14、clude<stdlib.h> #include<malloc.h> typedef struct Nodeint data;struct Node *next;LinkList;LinkList *create(int n)LinkList *p,*q,*head;int i=1;p=(LinkList*)malloc(sizeof(LinkList);p->data=i;head=p;for(i=1;i<=n;i+)q=(LinkList*)malloc(sizeof(LinkList);q->data=i+1;p->next=q;p=q;p

15、->next=head; / 使鏈表尾連接鏈表頭,形成循環(huán)鏈表return head;free(p);p=NULL;free(q);q=NULL;void deletefun(LinkList *L,int m)LinkList *p,*q,*temp;int i;p=L;while(p->next!=p)printf(int main()for(i=1;i<m;i+)printf(temp=p;q=p;p=p->next;%5d”,p->data);q->next=p->next;p=p->next;free(temp);%5dn”,p->

16、;data);int n=7,m=3;LinkList *head1;head1=create(n);deletefun(head1,m);return 0;3,3,4,5,6,7,77.輸入一串字符,只包含” 0-10和”,”找出其中最小的數(shù)字和最大的數(shù)字 (可能不止一個(gè)),輸出最后剩余數(shù)字個(gè)數(shù)。如輸入#include<stdio.h> #include<stdlib.h> #include<string.h> void main()char str100;printf( “輸入一組字符串: n ” );scanf( “%s”,&str);int

17、len=strlen(str);int array100;int count=0;for(int i=0;i<len;i+)9)if(stri>= ' 0' &&stri<=arraycount+=stri-arraycount= '0int result=count;int min=array0;int max=array0;for(int j=0;j<count;j+)if(max<arrayj)max=arrayj;else if(min>arrayj)min=arrayj;for(int k=0;k<co

18、unt;k+)if(arrayk=min)resultif(arrayk=max)result -printf(%dn”,result);8. 輸入一組身高在 170到 190之間( 5個(gè)身高),比較身高差,選出身高差最小的兩個(gè)身高;若身高差相同,選平均身高高的那兩個(gè)身高;從小到大輸出; 如輸入 170 181 173 186 190 輸出 170 173 #include<stdio.h> #include<stdlib.h> #define N 5 int main()int HeightN;int dmin;int H1,H2;int i,j,temp;print

19、f(“請(qǐng)輸入一組身高在170到190之間的數(shù)據(jù)(共5個(gè)):n ” );for(int k=0;k<N;k+) scanf( “%d”,&Heightk);printf(“n ” );for(i=0;i<N;i+)for(j=1;j<N-i&&Heightj-1>Heightj;j+)6 um-(0H-LH-)££d)££d一H亠亙莖6 一HHU 一 EpXT亙莖6 一hhlh(u至phvdem6 一H亠亙莖6 一H)七(+LLrNVLUZHE 1£)04丄=莖6 一Hxm呂一hhd自呂遠(yuǎn)HXTm

20、呂一 HHdE2THdHHU 一EP呂遠(yuǎn)HH0H9. 刪除子串 ,只要是原串中有相同的子串就刪掉, 不管有多少個(gè),返回子串個(gè)數(shù)。#include <stdio.h> #include <stdlib.h> #include <assert.h> #include <string.h> int delete_sub_str(const char *str,const char *sub_str,char *result)assert(str != NULL && sub_str != NULL);const char *p,*q;c

21、har *t,*temp;p = str;q = sub_str;t = result;int n,count = 0;n = strlen(q);temp = (char *)malloc(n+1);memset(tem p,OX 00, n+1);while(*p)memcpy(temp,p,n);if(strcmp(temp,q) = 0 )count+;memset(tem p,0 x 00, n+1);p = p + n;else*t = *p;p+;t+;memset(temp,0x00,n+1);free(temp);return count;void main()char s1

22、00 = '0 ' ;int num = delete_sub_str(“ 1 23abc 1 2de234fg 1 hi34j 1 23k ”, ”123 ,s);printf( “The number of sub_str is %drn ”,num);” ”,s);if(str0 !=-' )移除字母前的” -”符號(hào)printf( “The result string is %srn10. 要求編程實(shí)現(xiàn)上述高精度的十進(jìn)制加法。要求實(shí)現(xiàn)函數(shù):void add (const char *num1, const char *num2, char *result)【輸入】

23、num1字符串形式操作數(shù)1,如果操作數(shù)為負(fù),則num10為符號(hào)位-num2字符串形式操作數(shù)2,如果操作數(shù)為負(fù),則num20為符號(hào)位'【輸出】 result :保存加法計(jì)算結(jié)果字符串,如果結(jié)果為負(fù),則 result0 為符 號(hào)位。#include<stdio.h> #include<stdlib.h> #include<string.h> void move(char *str, int length) / return;int i;for(i = 0; i < length-1; i+) stri = stri+1;stri = 0 int r

24、emove_zero(char *result, int length) int count = 0;for(int i = length-1; i > 0; i- ) /從最后開始移除0,直到遇到非0數(shù)字,只對(duì)最初位置上的 0 不予判斷if(resulti ='0,)resulti =0count+;else return length-count;將字符串倒轉(zhuǎn)retur n len gth- count;void reverse(char *result, int length) / char temp;for(int i = 0; i <= (length-1)/2;

25、 i+) temp = resulti;resulti = resultlength-1-i;resultlength-1-i = temp;int real_add(char *str1, char *str2, char *result, const bool flag) int len1 = strlen(str1);表示進(jìn)位int len2 = strlen(str2);int n1, n2, another = 0; /anotherint cur_rs = 0; /表示 result 的當(dāng)前位數(shù)int i, j;int curSum;for(i = len1-1, j = len2

26、-1; i >= O && j >= O; in1 = str1i'O'n2 = str2j' O' ;' O' ;curSum = n1 + n2 + another;resultcur_rs+ = curSum % 1O + another = curSum / 1O;if(j < 0)while(i >= O) / 遍歷 str1 剩余各位n1 = str1i-'O'' O' ;curSum = n1 + another;resultcur_rs+ = curSum %

27、 1O + another = curSum / 1O;if(another != O) /如果還有進(jìn)位未加上' O' ;resultcur_rs+ = another +elsewhile(j >= O)n2 = str2j-'O'' O' ;curSum = n2 + another;resultcur_rs+ = curSum % 1O + another = curSum / 1O;if(another != 0)resultcur_rs+ = another +resultcur_rs =O 'cur_rs = remov

28、e_zero(result, cur_rs);if(!flag)resultcur_rs+ =resultcur_rs =O 'reverse(result, strlen(result);使用 str1 減去return cur_rs;int real_minus(char *str1, char *str2, char *result) / str2 char big1OO, small1OO;int big_len, sml_len;int len1 = strlen(str1);int len2 = strlen(str2);bool flag = false; /用于標(biāo)記 s

29、tr2 是否比 str1 大if(len1 < len2) flag = true;else if(len1 = len2) if(strcmp(str1, str2) = 0)resultO =' 0 ;result1 =0return 1;else if(strcmp(str1,str2) < 0) flag = true;if(flag) / 將 str1 和 str2 交換,確保 str1 指向的值是其中較大者,最后通過 flag 確定要不要給前面加 - 號(hào)char *temp = str1;str1 = str2;str2 = temp;len1 = strlen

30、(str1);len2 = strlen(str2);int n1, n2, another = 0; /another int i, j;int cur_rs = 0;int curMinus;表示是否有借位-,j -)for(i = len1-1, j = len2-1; i>=0 && j>=0; i n1 = str1i - ' O'n2 = str2j'O'' O' ;if(n1 >= n2+another) resultcur_rs+ = (n1-n2-another) + another = O;e

31、lse'O';resultcur_rs+ = (n1+1O-n2-another) + another = 1;while(i >= O)n1 = str1i-' O' ;if(another != O) n1 -= another;another = O;resultcur_rs+ = n1' O' ;resultcur_rs =O 'cur_rs = remove_zero(result, cur_rs);if(flag)resultcur_rs+ = resultcur_rs = reverse(result, cur_rs)

32、;return cur_rs;void addi(const char *num1, const char *num2, char *result) int len1 = strlen(num1);int len2 = strlen(num2);int rs_len;if(!len1 | !len2) return;char str1100, str2100;strncpy(str1, num1, len1);str1len1 = 0 strncpy(str2, num2, len2);str2len2 = 0 move(str1, len1);move(str2, len2);rs_len

33、= real_add(str1, str2, result, false);else if(str10 =-')move(str1, len1);rs_len = real_minus(str2, str1, result);else if(str20 =-')move(str2, len2);rs_len = real_minus(str1, str2, result);else rs_len = real_add(str1, str2, result, true);/int main(int argc, char *argv) int main()char num1100,

34、num2100;printf( “請(qǐng)輸入兩個(gè)整型數(shù)據(jù): n ”);scanf( “%s%”s ,num1,num2);char result100;memset(result, 0, 100);addi(num1,num2, result);printf( “%sn”, result);return 0;A老師需要?jiǎng)澇黾案窬€,要求如11. 描述: 10 個(gè)學(xué)生考完期末考試評(píng)卷完成后, 下:(1)及格線是 10 的倍數(shù);(2)保證至少有 60%的學(xué)生及格;(3)如果所有的學(xué)生都高于 60 分,則及格線為60分輸入:輸入 10 個(gè)整數(shù),取值 0100輸出:輸出及格線, 10 的倍數(shù)#include

35、<stdio.h> void bubblesort(int arr)int a10=0;for(i=0;i<10;i+)for(j=0;j<9-i&&arrj>arrj+1;j+)temp=arrj;arrj=arrj+1;arrj+1=temp;int GetPassLine(int a)bubblesort(a);if(a0>=60)return 60;elsereturn (int)a4/10)*10);main()int result;printf( “請(qǐng)隨機(jī)輸入 10個(gè)成績(0-100): n”);scanf( “%d%d%d%d%

36、d%d%d%”d%,&da%0d,&a1,&a2,&a3,&a4, &a5,&a6,&a7,&a8,&a9);printf( “n ”);result=GetPassLine(a);printf( “及格線為 :%dn”,result);return 1;12. 描述:一條長廊里依次裝有 n(1 < n < 65535)盞電燈,從頭到尾編號(hào)1、2、3、n-1、n。每盞電燈由一個(gè)拉線開關(guān)控制。開始,電燈全部關(guān)著。有 n 個(gè)學(xué)生從長廊穿過。第一個(gè)學(xué)生把號(hào)碼凡是 1 的倍數(shù)的電燈的開關(guān)拉一下; 接著第二個(gè)學(xué)生

37、把號(hào)碼凡是 2 的倍數(shù)的電燈的開關(guān)拉一下;接著第三個(gè)學(xué)生把 號(hào)碼凡是 3的倍數(shù)的電燈的開關(guān)拉一下;如此繼續(xù)下去,最后第 n 個(gè)學(xué)生把號(hào) 碼凡是 n 的倍數(shù)的電燈的開關(guān)拉一下。 n 個(gè)學(xué)生按此規(guī)定走完后, 長廊里電燈有 幾盞亮著。注:電燈數(shù)和學(xué)生數(shù)一致。輸入:電燈的數(shù)量 輸出:亮著的電燈數(shù)量 樣例輸入: 3樣例輸出: 1#include<stdio.h> #define Max_Bubl_Num 65535 int GetLightLampNum(int n)int BublNumMax_Bubl_Num=0; /0表示燈滅, 1 表示燈亮unsigned int i,j;unsig

38、ned int count=0;for(i=1;i<=n;i+)for(j=i;j<=n&&j%i=0;j+)BublNumj-1+=1;BublNumj-1=BublNumj-1%2;for(int k=0;k<n;k+)if(BublNumk=1)count+;return count;int main()int n,result;printf( “請(qǐng)輸入燈的數(shù)量( 1-65535 ) :n ”);scanf( “%d”,&n);result=GetLightLampNum(n);printf( “最后亮燈的數(shù)量為 :%dn” ,result);r

39、eturn 0;13. 描述:已知2條地鐵線路,其中A為環(huán)線,B為東西向線路,線路都是雙向 的。經(jīng)過的站點(diǎn)名分別如下,兩條線交叉的換乘點(diǎn)用T1、T2表示。編寫程序,任意輸入兩個(gè)站點(diǎn)名稱,輸出乘坐地鐵最少需要經(jīng)過的車站數(shù)量(含輸入的起 點(diǎn)和終點(diǎn),換乘站點(diǎn)只計(jì)算一次)。A1 A2 A3 A4 A5 A6 A7 A8 A9 T1 A10 A11 A12 A13B1 B2 B3 B4 B5 T1 B6 B7 B8 B9 B10 T2 B11 B12地鐵線A (環(huán)線)經(jīng)過車站:T2 A14 A15 A16 A17 A18地鐵線B (直線)經(jīng)過車站:B13 B14 B15輸入:輸入兩個(gè)不同的站名輸出:輸出

40、最少經(jīng)過的站數(shù), 含輸入的起點(diǎn)和終點(diǎn),換乘站點(diǎn)只計(jì)算一次輸入樣例: A1 A3輸出樣例: 3 #include<stdio.h>#include<string> #include<queue> #include<vector> using namespace std;#define MAX 35 #define SUBWAY_A 20 #define SUBWAY_B 15 typedef struct node int adjvex;struct node *next;edgenode;typedef struct char name10;bo

41、ol flag;edgenode *link;vexnode;con st char subway_name1SUBWAY_A10= “ A1 , ” A2',” A3, ” A4 , ”A5 , ” A6' , ” A7' , ” A8 , ” A9' , ” T1 , ” A10' , ” A1T,” A12', ” A13 ,”T2 , ” A14 , ” A15 , ” A16' , ” A17' , ” A18 ;con st char subway_name2SUBWAY_B10= “ B1, ” B2', ”

42、B3 , ”B4 ,”B5 , ” B6' , ” B7' , ” B8 , ” B9 , ” B10' , ” B1T, ” B12', ”B13 , ”B14, ”B15 ;void creat(vexnode ga) int i;edgenode *p;for(i=0;i<MAX;i+) gai.link=NULL;gai.flag=true;if(i<SUBWAY_A) strcpy(,subway_name1i);else strcpy(,subway_name2i-20);/A 地鐵建鄰接表for(i=1;

43、i<SUBWAY_A-1;i+) p=(edgenode*)malloc(sizeof(edgenode);p->adjvex=i-1;p->next=NULL;gai.link=p;p=(edgenode*)malloc(sizeof(edgenode);p->adjvex=i+1;p->next=NULL;gai.link->next=p;if(i=9) p=(edgenode*)malloc(sizeof(edgenode);p->adjvex=SUBWAY_A+4;p->next=NULL;gai.link->next->ne

44、xt=p;p=(edgenode*)malloc(sizeof(edgenode);p->adjvex=SUBWAY_A+5;p->next=NULL;gai.link->next->next->next=p;else if(i=14) p=(edgenode*)malloc(sizeof(edgenode);p->adjvex=SUBWAY_A+9;p->next=NULL;gai.link->next->next=p;p=(edgenode*)malloc(sizeof(edgenode);p->adjvex=SUBWAY_A+1

45、0;p->next=NULL;gai.link->next->next->next=p;p=(edgenode*)malloc(sizeof(edgenode);p->adjvex=SUBWAY_A-1;p->next=NULL;ga0.link=p;p=(edgenode*)malloc(sizeof(edgenode);p->adjvex=1;p->next=NULL;ga0.link->next=p;p=(edgenode*)malloc(sizeof(edgenode);p->adjvex=SUBWAY_A-2;p->n

46、ext=NULL;gaSUBWAY_A-1.link=p;p=(edgenode*)malloc(sizeof(edgenode);p->adjvex=0;p->next=NULL;gaSUBWAY_A-1.link->next=p;/B 地鐵建鄰接表for(i=1;i<SUBWAY_B-1;i+) if(i=4|i=5|i=9|i=10) continue;p=(edgenode*)malloc(sizeof(edgenode);p->adjvex=SUBWAY_A+i-1;p->next=NULL;gai+SUBWAY_A.link=p;p=(edgen

47、ode*)malloc(sizeof(edgenode);p->adjvex=SUBWAY_A+i+1;p->next=NULL;gai+SUBWAY_A.link->next=p;p=(edgenode*)malloc(sizeof(edgenode);p->adjvex=SUBWAY_A+3;p->next=NULL;gaSUBWAY_A+4.link=p;p=(edgenode*)malloc(sizeof(edgenode);p->adjvex=9;p->next=NULL;gaSUBWAY_A+4.link->next=p;p=(edg

48、enode*)malloc(sizeof(edgenode);p->adjvex=9;p->next=NULL;gaSUBWAY_A+5.link=p;p=(edgenode*)malloc(sizeof(edgenode);p->adjvex=SUBWAY_A+6;p->next=NULL;gaSUBWAY_A+5.link->next=p;p=(edgenode*)malloc(sizeof(edgenode);p->adjvex=SUBWAY_A+8;p->next=NULL;gaSUBWAY_A+9.link=p;p=(edgenode*)ma

49、lloc(sizeof(edgenode);p->adjvex=14;p->next=NULL;gaSUBWAY_A+9.link->next=p;p=(edgenode*)malloc(sizeof(edgenode);p->adjvex=14;p->next=NULL;gaSUBWAY_A+10.link=p;p=(edgenode*)malloc(sizeof(edgenode);p->adjvex=SUBWAY_A+11;p->next=NULL;gaSUBWAY_A+10.link->next=p;p=(edgenode*)malloc

50、(sizeof(edgenode);p->adjvex=SUBWAY_A+1;p->next=NULL;gaSUBWAY_A.link=p;p=(edgenode*)malloc(sizeof(edgenode);p->adjvex=SUBWAY_A+SUBWAY_B-2;p->next=NULL;gaSUBWAY_A+SUBWAY_B-1.link=p;/ 打印各鄰接節(jié)點(diǎn)for(i=0;i<MAX;i+) printf( “%s:” ,);edgenode *s;s=gai.link;while(s!=NULL) printf( “ ->%

51、s”,gas->);s=s->next;printf( “n ”);int main() vexnode gaMAX;creat(ga);int i;char str210;while(scanf( “ %s%”s ,str0,str1)!=EOF) int temp=0;for(i=0;i<MAX;i+) gai.flag=true;if(!strcmp(str0,) temp=i;queue<vexnode>q;q.push(gatemp);gatemp.flag=false;int count=0;int start=0

52、;int end=1;bool find_flag=false;while(!q.empty() if(find_flag) break;count+;”);printf( “ *nprintf(“第 c層搜索:”,cou nt);int temp_end=end;while(start<temp_end) printf( “%s “ ,q.front().name);if(!strcmp(q.front().name,str1) find_flag=true;break;edgenode *s;s=q.front().link;while(s!=NULL) if(gas->adj

53、vex.flag) q.push(gas->adjvex);gas->adjvex.flag=false;end+;/printf( “%s “,gas->);s=s->next;q.pop();start+;printf(“1 ”、n ”);printf(%dn”,count);return 0;14. 字串轉(zhuǎn)換 問題描述: 將輸入的字符串(字符串僅包含小寫字母' a' 到' z' ),按照如下規(guī)則,循環(huán)轉(zhuǎn) 換后輸出:a->b,b->c,,y->z,z->a ;若輸入的字符串連續(xù)出現(xiàn)兩個(gè)字母

54、相同時(shí), 后一個(gè)字母需要連續(xù)轉(zhuǎn)換 2 次。例如: aa 轉(zhuǎn)換為 bc ,zz 轉(zhuǎn)換為 ab ;當(dāng)連續(xù)相 同字母超過兩個(gè)時(shí),第三個(gè)出現(xiàn)的字母按第一次出現(xiàn)算。要求實(shí)現(xiàn)函數(shù):void convert(char *input,char* output)輸入】char *input ,輸入的字符串輸出】char *output,輸出的字符串返回】#include<stdio.h> #include<string.h> #include<stdlib.h> void convert(char *input,char* output)if(input=NULL)return;char temp= ' 0 ; int len_input=strlen(input);int i; int flag=0; for(i=0;i<len_input;i+)if(inputi!=temp)outputi=(inputi-' a'+1)%2

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論