版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 1.輸入整型數(shù)組求數(shù)組的最小數(shù)和最大數(shù)之和,例如輸入1,2,3,4則輸出為5,當(dāng)輸入只有一個數(shù)的時候,則最小數(shù)和最大數(shù)都是該數(shù),例如只輸入1,則輸出為2;另外數(shù)組的長度不超過50</p><p><b> 參考代碼:</b></p><p> #include<stdio.h></p><p><b&
2、gt; main()</b></p><p><b> {</b></p><p> int num[50]={0};</p><p><b> int i,n;</b></p><p> printf(“請輸入整型數(shù)組的長度(1~50):”);</p><
3、p> scanf(“%d”,&n);</p><p> printf(“請輸入整型數(shù)組的元素:”);</p><p> for (i=0;i<n;i++)</p><p><b> {</b></p><p> scanf(“%d”,&num[i]);
4、0; </p><p><b> }</b></p><p> int min_num=num[0];</p><p> int max_num=num[0];</p><p> for(int j=0;j<n;j++)</p><p><b> {</b
5、></p><p> if(max_num<num[j])</p><p> max_num=num[j];</p><p> else if(min_num>num[j])</p><p> min_num=num[j];</p><p><b> }</b><
6、/p><p> int sum=min_num+max_num;</p><p> printf(“數(shù)組中最大與最小值之和:%d\n”,sum);</p><p><b> return 0;</b></p><p><b> }</b></p><p> 2.求兩個長
7、長整型的數(shù)據(jù)的和并輸出,例如輸入1233333333333333 。。。 3111111111111111111111111.。。。,則輸出。。。。</p><p> #include<stdio.h></p><p> #include<string.h></p><p> #include<malloc.h></p
8、><p><b> main()</b></p><p><b> {</b></p><p> char *num1,*num2; //兩個長長整型數(shù)據(jù)</p><p> char *sum;</p><p> // in
9、t temp;</p><p> int len_num1,len_num2; // 兩個長長整型數(shù)據(jù)的長度</p><p> int len_max,len_min;</p><p> num1=(char*)malloc(sizeof(char));</p><p> num2=(char*)malloc(sizeof(char)
10、);</p><p> printf(“輸入兩個長長整型數(shù)據(jù):”);</p><p> scanf(“%s”,num1);</p><p> printf(“輸入兩個長長整型數(shù)據(jù):”);</p><p> scanf(“%s”,num2);</p><p> len_num1=strlen(num1);<
11、;/p><p> len_num2=strlen(num2);</p><p> len_max=(len_num1>=len_num2)? len_num1:len_num2;</p><p> len_min=(len_num1<=len_num2)? len_num1:len_num2;</p><p> int len
12、_max1=len_max;</p><p> sum=(char*)malloc(sizeof(char)*len_max);</p><p> memset(sum,0×00,len_max+1);//切忌初始化</p><p> for(;len_num1>0&&len_num2>0;len_num1–,len_nu
13、m2–)</p><p><b> {</b></p><p> sum[len_max--]=((num1[len_num1-1]-’0′)+(num2[len_num2-1]-’0′));</p><p><b> }</b></p><p> if(len_num1>0)<
14、/p><p><b> {</b></p><p> sum[len_max--]=num1[len_num1 - 1 ]-’0′;</p><p> len_num1–;</p><p><b> }</b></p><p> if(len_num2>0)<
15、;/p><p><b> {</b></p><p> sum[len_max--]=num1[len_num2 - 1]-’0′;</p><p> len_num2–;</p><p><b> }</b></p><p> for(int j=len_max1;j
16、>=0;j–) //實(shí)現(xiàn)進(jìn)位操作</p><p><b> {</b></p><p> // temp=sum[j]-’0′;</p><p> if(sum[j]>=10)</p><p><b> {</b></p>
17、<p> sum[j-1]+=sum[j]/10;</p><p> sum[j]%=10;</p><p><b> }</b></p><p><b> }</b></p><p> char *outsum=(char*)malloc(sizeof(char)*len_
18、max1);</p><p><b> j=0;</b></p><p> while(sum[j]==0) //跳出頭部0元素</p><p><b> j++;</b></p><p> for(int m=0;m<len_max1;j++,m++)</p><
19、p> outsum[m]=sum[j]+’0′;</p><p> outsum[m]=’\0′;</p><p> printf(“輸出兩長長整型數(shù)據(jù)之和:%s\n”,outsum);</p><p><b> return 0;</b></p><p><b> }</b><
20、;/p><p> 3.通過鍵盤輸入一串小寫字母(a~z)組成的字符串。請編寫一個字符串過濾程序,若字符串中出現(xiàn)多個相同的字符,將非首次出現(xiàn)的字符過濾掉。</p><p> 比如字符串”abacacde”過濾結(jié)果為”abcde”。</p><p><b> 要求實(shí)現(xiàn)函數(shù):</b></p><p> void strin
21、gFilter(const char *pInputStr, long lInputLen, char *pOutputStr);</p><p> 【輸入】 pInputStr:輸入字符串</p><p> lInputLen:輸入字符串長度</p><p> 【輸出】 pOutputStr:輸出字符串,空間已經(jīng)開辟好,與輸入字符串等長;</p>
22、<p><b> 參考代碼:</b></p><p> #include <stdio.h></p><p> #include<string.h></p><p> #include<malloc.h></p><p> void stringFilter(c
23、onst char *p_str, long len, char *p_outstr)</p><p><b> {</b></p><p> int array[256]={0};</p><p> const char *tmp = p_str;</p><p> for(int j=0;j<len;j
24、++)</p><p><b> {</b></p><p> if(array[tmp[j]]==0)</p><p> *p_outstr++= tmp[j];</p><p> array[tmp[j]]++;</p><p><b> }</b></p
25、><p> *p_outstr = ‘\0′;</p><p><b> }</b></p><p> void main()</p><p><b> {</b></p><p> char *str = “cccddecc”;</p><p>
26、; int len = strlen(str); </p><p> char * outstr = (char *)malloc(len*sizeof(char));</p><p> stringFilter(str,len,outstr);</p><p> printf(“%s\n”,outstr);&l
27、t;/p><p> free(outstr);</p><p> outstr = NULL;</p><p><b> }</b></p><p> 5.通過鍵盤輸入100以內(nèi)正整數(shù)的加、減運(yùn)算式,請編寫一個程序輸出運(yùn)算結(jié)果字符串。</p><p> 輸入字符串的格式為:”操作數(shù)1 運(yùn)算符
28、 操作數(shù)2″,”操作數(shù)”與”運(yùn)算符”之間以一個空格隔開。</p><p><b> 補(bǔ)充說明:</b></p><p> 1. 操作數(shù)為正整數(shù),不需要考慮計算結(jié)果溢出的情況。</p><p> 2. 若輸入算式格式錯誤,輸出結(jié)果為”0″。</p><p><b> 要求實(shí)現(xiàn)函數(shù):</b>&l
29、t;/p><p> void arithmetic(const char *pInputStr, long lInputLen, char *pOutputStr);</p><p> 【輸入】 pInputStr: 輸入字符串</p><p> lInputLen: 輸入字符串長度</p><p> 【輸出】 pOutputStr: 輸
30、出字符串,空間已經(jīng)開辟好,與輸入字符串等長;</p><p> #include <stdio.h></p><p> #include<string.h></p><p> #include<stdlib.h></p><p> void arithmetic(const char *input,
31、 long len, char *output)</p><p><b> {</b></p><p> char s1[10];</p><p> char s2[10];</p><p> char s3[10];</p><p> int cnt = 0;</p>&
32、lt;p> int len_input=strlen(input);</p><p> for(int i=0;i<len_input;++i)</p><p><b> {</b></p><p> if(input[i]==’ ‘)</p><p><b> cnt++;</b&
33、gt;</p><p><b> }</b></p><p> if(cnt!=2)</p><p><b> {</b></p><p> *output++ = ’0′;</p><p> *output = ‘\0′;</p><p>
34、<b> return;</b></p><p><b> }</b></p><p> sscanf(input,”%s %s %s”,s1,s2,s3);</p><p> if(strlen(s2)!=1||(s2[0]!=’+'&&s2[0]!=’-'))</p>
35、<p><b> {</b></p><p> *output++ = ’0′;</p><p> *output = ‘\0′;</p><p><b> return;</b></p><p><b> }</b></p><p&
36、gt; int len_s1=strlen(s1);</p><p> for(i=0;i<len_s1;i++)</p><p><b> {</b></p><p> if(s1[i]<’0′||s1[i]>’9′)</p><p><b> {</b></p&
37、gt;<p> *output++ = ’0′;</p><p> *output = ‘\0′;</p><p><b> return;</b></p><p><b> }</b></p><p><b> }</b></p><
38、;p> int len_s3=strlen(s3);</p><p> for(i=0;i<len_s3;i++)</p><p><b> {</b></p><p> if(s3[i]<’0′||s3[i]>’9′)</p><p><b> {</b><
39、/p><p> *output++ = ’0′;</p><p> *output = ‘\0′;</p><p><b> return;</b></p><p><b> }</b></p><p><b> }</b></p>
40、<p> int x = atoi(s1);</p><p> int y = atoi(s3);</p><p> if(s2[0]==’+')</p><p><b> {</b></p><p> int result = x+y;</p><p> itoa(
41、result,output,10);</p><p><b> }</b></p><p> else if(s2[0]==’-')</p><p><b> {</b></p><p> int result = x-y;</p><p> itoa(re
42、sult,output,10);</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> *output++ = ’0′;</p><p> *output =
43、‘\0′;</p><p><b> return;</b></p><p><b> }</b></p><p><b> }</b></p><p> void main()</p><p><b> {</b><
44、;/p><p> char str[] = {“10 – 23″};</p><p> char outstr[10];</p><p> int len = strlen(str);</p><p> arithmetic(str,len,outstr);</p><p> printf(“%s\n”,str)
45、;</p><p> printf(“%s\n”,outstr); </p><p><b> }</b></p><p> 6.一組人(n個),圍成一圈,從某人開始數(shù)到第三個的人出列,再接著從下一個人開始數(shù),最終輸出最終出列的人</p><p> ?。s瑟夫環(huán)是一個數(shù)
46、學(xué)的應(yīng)用問題:已知n個人(以編號1,2,3…n分別表示)圍坐在一張圓桌周圍。從編號為k的人開始報數(shù),數(shù)到m的那個人出列;他的下一個人又從1開始報數(shù),數(shù)到m的那個人又出列;依此規(guī)律重復(fù)下去,直到圓桌周圍的人全部出列。)</p><p> #include <stdio.h></p><p> #include<string.h></p><p&
47、gt; #include<stdlib.h></p><p> #include<malloc.h></p><p> typedef struct Node</p><p><b> {</b></p><p><b> int data;</b></p&g
48、t;<p> struct Node *next;</p><p> }LinkList;</p><p> LinkList *create(int n)</p><p><b> {</b></p><p> LinkList *p,*q,*head;</p><p>
49、<b> int i=1;</b></p><p> p=(LinkList*)malloc(sizeof(LinkList));</p><p> p->data=i;</p><p><b> head=p;</b></p><p> for(i=1;i<=n;i++)&l
50、t;/p><p><b> {</b></p><p> q=(LinkList*)malloc(sizeof(LinkList));</p><p> q->data=i+1;</p><p> p->next=q;</p><p><b> p=q;</b&g
51、t;</p><p><b> }</b></p><p> p->next=head; //使鏈表尾連接鏈表頭,形成循環(huán)鏈表</p><p> return head;</p><p><b> free(p);</b></p><p><b>
52、p=NULL;</b></p><p><b> free(q);</b></p><p><b> q=NULL;</b></p><p><b> }</b></p><p> void deletefun(LinkList *L,int m)</
53、p><p><b> {</b></p><p> LinkList *p,*q,*temp;</p><p><b> int i;</b></p><p><b> p=L;</b></p><p> while(p->next!=p)&
54、lt;/p><p><b> {</b></p><p> for(i=1;i<m;i++)</p><p><b> {</b></p><p><b> q=p;</b></p><p> p=p->next;</p>
55、<p><b> }</b></p><p> printf(“%5d”,p->data);</p><p><b> temp=p;</b></p><p> q->next=p->next;</p><p> p=p->next;</p>
56、<p> free(temp);</p><p><b> }</b></p><p> printf(“%5d\n”,p->data);</p><p><b> }</b></p><p> int main()</p><p><b&
57、gt; {</b></p><p> int n=7,m=3;</p><p> LinkList *head1;</p><p> head1=create(n);</p><p> deletefun(head1,m);</p><p><b> return 0;</b&g
58、t;</p><p><b> }</b></p><p> 7..輸入一串字符,只包含”0-10″和”,”找出其中最小的數(shù)字和最大的數(shù)字(可能不止一個),輸出最后剩余數(shù)字個數(shù)。如輸入 “3,3,4,5,6,7,7″</p><p> #include<stdio.h></p><p> #inclu
59、de<stdlib.h></p><p> #include<string.h></p><p> void main()</p><p><b> {</b></p><p> char str[100];</p><p> printf(“輸入一組字符串:\n
60、”);</p><p> scanf(“%s”,&str);</p><p> int len=strlen(str);</p><p> int array[100];</p><p> int count=0;</p><p> for(int i=0;i<len;i++)</p>
61、;<p><b> {</b></p><p> if(str[i]>=’0′&&str[i]<=’9′)</p><p> array[count++]=str[i]-’0′;</p><p><b> }</b></p><p> array[
62、count]=’\0′;</p><p> int result=count;</p><p> int min=array[0];</p><p> int max=array[0];</p><p> for(int j=0;j<count;j++)</p><p><b> {</
63、b></p><p> if(max<array[j])</p><p> max=array[j];</p><p> else if(min>array[j])</p><p> min=array[j];</p><p><b> }</b></p>
64、<p> for(int k=0;k<count;k++)</p><p><b> {</b></p><p> if(array[k]==min)</p><p><b> result–;</b></p><p> if(array[k]==max)</p&g
65、t;<p><b> result–;</b></p><p><b> }</b></p><p> printf(“%d\n”,result);</p><p><b> }</b></p><p> 8.輸入一組身高在170到190之間(5個身高)
66、,比較身高差,選出身高差最小的兩個身高;若身高差相同,選平均身高高的那兩個身高;從小到大輸出;如輸入 170 181 173 186 190輸出 170 173</p><p> #include<stdio.h></p><p> #include<stdlib.h></p><p> #define N 5</p>
67、<p> int main()</p><p><b> {</b></p><p> int Height[N];</p><p><b> int dmin;</b></p><p> int H1,H2;</p><p> int i,j,temp
68、;</p><p> printf(“請輸入一組身高在170到190之間的數(shù)據(jù)(共5個):\n”);</p><p> for(int k=0;k<N;k++)</p><p> scanf(“%d”,&Height[k]);</p><p> printf(“\n”);</p><p> fo
69、r(i=0;i<N;i++)</p><p> for(j=1;j<N-i&&Height[j-1]>Height[j];j++)</p><p><b> {</b></p><p> temp=Height[j-1];</p><p> Height[j-1]=Height[
70、j];</p><p> Height[j]=temp;</p><p><b> }</b></p><p> H1=Height[0];</p><p> H2=Height[1];</p><p> dmin=H2-H1;</p><p> for(int
71、 m=2;m<N;m++)</p><p><b> {</b></p><p> if(Height[m]-Height[m-1]<=dmin)</p><p><b> {</b></p><p> H1=Height[m-1];</p><p>
72、H2=Height[m];</p><p> dmin=Height[m]-Height[m-1];</p><p><b> }</b></p><p><b> }</b></p><p> printf(“身高差最小的兩個身高為:\n”);</p><p>
73、printf(“%d,%d\n”,H1,H2);</p><p><b> return 0;</b></p><p><b> }</b></p><p> 9.刪除子串,只要是原串中有相同的子串就刪掉,不管有多少個,返回子串個數(shù)。</p><p> #include <stdio.
74、h></p><p> #include <stdlib.h></p><p> #include <assert.h></p><p> #include <string.h></p><p> int delete_sub_str(const char *str,const char *s
75、ub_str,char *result)</p><p><b> {</b></p><p> assert(str != NULL && sub_str != NULL);</p><p> const char *p,*q;</p><p> char *t,*temp;</p>
76、<p><b> p = str;</b></p><p> q = sub_str;</p><p> t = result;</p><p> int n,count = 0;</p><p> n = strlen(q);</p><p> temp = (char
77、 *)malloc(n+1);</p><p> memset(temp,0×00,n+1);</p><p><b> while(*p)</b></p><p><b> {</b></p><p> memcpy(temp,p,n);</p><p>
78、 if(strcmp(temp,q) == 0 )</p><p><b> {</b></p><p><b> count++;</b></p><p> memset(temp,0×00,n+1);</p><p> p = p + n;</p><p&
79、gt;<b> }</b></p><p><b> else</b></p><p><b> { </b></p><p><b> *t = *p;</b></p><p><b>
80、p++;</b></p><p><b> t++;</b></p><p> memset(temp,0×00,n+1);</p><p><b> } </b></p><p><b> }</b>
81、</p><p> free(temp);</p><p> return count;</p><p><b> }</b></p><p> void main()</p><p><b> {</b></p><p> char s[
82、100] = {‘\0′};</p><p> int num = delete_sub_str(“123abc12de234fg1hi34j123k”,”123″,s);</p><p> printf(“The number of sub_str is %d\r\n”,num);</p><p> printf(“The result string is
83、%s\r\n”,s);</p><p><b> }</b></p><p> 10. 要求編程實(shí)現(xiàn)上述高精度的十進(jìn)制加法。要求實(shí)現(xiàn)函數(shù):</p><p> void add (const char *num1, const char *num2, char *result)</p><p> 【輸入】num1:
84、字符串形式操作數(shù)1,如果操作數(shù)為負(fù),則num1[0]為符號位’-’</p><p> num2:字符串形式操作數(shù)2,如果操作數(shù)為負(fù),則num2[0]為符號位’-’</p><p> 【輸出】result:保存加法計算結(jié)果字符串,如果結(jié)果為負(fù),則result[0]為符號位。</p><p> #include<stdio.h></p>
85、<p> #include<stdlib.h></p><p> #include<string.h></p><p> void move(char *str, int length) //移除字母前的”-”符號</p><p><b> {</b></p><p> if(
86、str[0] != ‘-’)</p><p><b> return;</b></p><p><b> int i;</b></p><p> for(i = 0; i < length-1; i++)</p><p> str[i] = str[i+1];</p>&
87、lt;p> str[i] = ‘\0′;</p><p><b> }</b></p><p> int remove_zero(char *result, int length)</p><p><b> {</b></p><p> int count = 0;</p>
88、;<p> for(int i = length-1; i > 0; i–) //從最后開始移除0,直到遇到非0數(shù)字,只對最初位置上的0不予判斷</p><p><b> {</b></p><p> if(result[i] == ’0′)</p><p><b> {</b></p&g
89、t;<p> result[i] = ‘\0′;</p><p><b> count++;</b></p><p><b> }else</b></p><p> return length-count;</p><p><b> }</b></
90、p><p> return length – count;</p><p><b> }</b></p><p> void reverse(char *result, int length) //將字符串倒轉(zhuǎn)</p><p><b> {</b></p><p> c
91、har temp;</p><p> for(int i = 0; i <= (length-1)/2; i++)</p><p><b> {</b></p><p> temp = result[i];</p><p> result[i] = result[length-1-i];</p>
92、<p> result[length-1-i] = temp;</p><p><b> }</b></p><p><b> }</b></p><p> int real_add(char *str1, char *str2, char *result, const bool flag)</
93、p><p><b> {</b></p><p> int len1 = strlen(str1);</p><p> int len2 = strlen(str2);</p><p> int n1, n2, another = 0; //another表示進(jìn)位</p><p> int
94、cur_rs = 0; //表示result的當(dāng)前位數(shù)</p><p><b> int i, j;</b></p><p> int curSum;</p><p> for(i = len1-1, j = len2-1; i >= 0 && j >= 0; i–, j–)</p><p&
95、gt;<b> {</b></p><p> n1 = str1[i] – ’0′;</p><p> n2 = str2[j] – ’0′;</p><p> curSum = n1 + n2 + another;</p><p> result[cur_rs++] = curSum % 10 + ’0′;&
96、lt;/p><p> another = curSum / 10;</p><p><b> }</b></p><p><b> if(j < 0)</b></p><p><b> {</b></p><p> while(i >=
97、 0) //遍歷str1剩余各位</p><p><b> {</b></p><p> n1 = str1[i--] – ’0′;</p><p> curSum = n1 + another;</p><p> result[cur_rs++] = curSum % 10 + ’0′;</p>
98、<p> another = curSum / 10;</p><p><b> }</b></p><p> if(another != 0) //如果還有進(jìn)位未加上</p><p> result[cur_rs++] = another + ’0′;</p><p><b> }<
99、/b></p><p><b> else</b></p><p><b> {</b></p><p> while(j >= 0)</p><p><b> {</b></p><p> n2 = str2[j--] – ’0′
100、;</p><p> curSum = n2 + another;</p><p> result[cur_rs++] = curSum % 10 + ’0′;</p><p> another = curSum / 10;</p><p><b> }</b></p><p> if(
101、another != 0)</p><p> result[cur_rs++] = another + ’0′;</p><p><b> }</b></p><p> result[cur_rs] = ‘\0′;</p><p> cur_rs = remove_zero(result, cur_rs);<
102、;/p><p><b> if(!flag)</b></p><p><b> {</b></p><p> result[cur_rs++] = ‘-’;</p><p> result[cur_rs] = ‘\0′;</p><p><b> }</
103、b></p><p> reverse(result, strlen(result));</p><p> return cur_rs;</p><p><b> }</b></p><p> int real_minus(char *str1, char *str2, char *result) //使用
104、str1減去str2</p><p><b> {</b></p><p> char big[100], small[100];</p><p> int big_len, sml_len;</p><p> int len1 = strlen(str1);</p><p> int
105、len2 = strlen(str2);</p><p> bool flag = false; //用于標(biāo)記str2是否比str1大</p><p> if(len1 < len2)</p><p> flag = true;</p><p> else if(len1 == len2)</p><p>
106、;<b> {</b></p><p> if(strcmp(str1, str2) == 0)</p><p><b> {</b></p><p> result[0] = ’0′;</p><p> result[1] = ‘\0′;</p><p><
107、b> return 1;</b></p><p> }else if(strcmp(str1,str2) < 0)</p><p> flag = true;</p><p><b> }</b></p><p> if(flag) //將str1和str2交換,確保str1指向的值是其
108、中較大者,最后通過flag確定要不要給前面加-號</p><p><b> {</b></p><p> char *temp = str1;</p><p> str1 = str2;</p><p> str2 = temp;</p><p> len1 = strlen(str1)
109、;</p><p> len2 = strlen(str2);</p><p><b> }</b></p><p> int n1, n2, another = 0; //another表示是否有借位</p><p><b> int i, j;</b></p><p&
110、gt; int cur_rs = 0;</p><p> int curMinus;</p><p> for(i = len1-1, j = len2-1; i>=0 && j>=0; i–,j–)</p><p><b> {</b></p><p> n1 = str1[i]
111、– ’0′;</p><p> n2 = str2[j] – ’0′;</p><p> if(n1 >= n2+another)</p><p><b> {</b></p><p> result[cur_rs++] = (n1-n2-another) +’0′;</p><p>
112、; another = 0;</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> result[cur_rs++] = (n1+10-n2-another) + ’0′;</p
113、><p> another = 1;</p><p><b> }</b></p><p><b> }</b></p><p> while(i >= 0)</p><p><b> {</b></p><p>
114、n1 = str1[i--] – ’0′;</p><p> if(another != 0)</p><p><b> {</b></p><p> n1 -= another;</p><p> another = 0;</p><p><b> }</b>&l
115、t;/p><p> result[cur_rs++] = n1 + ’0′;</p><p><b> }</b></p><p> result[cur_rs] = ‘\0′;</p><p> cur_rs = remove_zero(result, cur_rs);</p><p>&l
116、t;b> if(flag)</b></p><p><b> {</b></p><p> result[cur_rs++] = ‘-’;</p><p> result[cur_rs] = ‘\0′;</p><p><b> }</b></p><
117、p> reverse(result, cur_rs);</p><p> return cur_rs;</p><p><b> }</b></p><p> void addi(const char *num1, const char *num2, char *result)</p><p><b&
118、gt; {</b></p><p> int len1 = strlen(num1);</p><p> int len2 = strlen(num2);</p><p> int rs_len;</p><p> if(!len1 || !len2)</p><p><b> ret
119、urn;</b></p><p> char str1[100], str2[100];</p><p> strncpy(str1, num1, len1);</p><p> str1[len1] = ‘\0′;</p><p> strncpy(str2, num2, len2);</p><p&
120、gt; str2[len2] = ‘\0′;</p><p> if(str1[0] == ‘-’ && str2[0] == ‘-’)</p><p><b> {</b></p><p> move(str1, len1);</p><p> move(str2, len2);</p&
121、gt;<p> rs_len = real_add(str1, str2, result, false);</p><p> }else if(str1[0] == ‘-’)</p><p><b> {</b></p><p> move(str1, len1);</p><p> rs_len
122、 = real_minus(str2, str1, result);</p><p><b> }</b></p><p> else if(str2[0] == ‘-’)</p><p><b> {</b></p><p> move(str2, len2);</p>&l
123、t;p> rs_len = real_minus(str1, str2, result);</p><p><b> }else</b></p><p> rs_len = real_add(str1, str2, result, true);</p><p><b> }</b></p>&l
124、t;p> //int main(int argc, char *argv[])</p><p> int main()</p><p><b> {</b></p><p> char num1[100],num2[100];</p><p> printf(“請輸入兩個整型數(shù)據(jù):\n”);</p&
125、gt;<p> scanf(“%s%s”,num1,num2);</p><p> char result[100];</p><p> memset(result, 0, 100);</p><p> addi(num1,num2, result);</p><p> printf(“%s\n”, result);&
126、lt;/p><p><b> return 0;</b></p><p><b> }</b></p><p> 11.描述:10個學(xué)生考完期末考試評卷完成后,A老師需要劃出及格線,要求如下:(1) 及格線是10的倍數(shù);(2) 保證至少有60%的學(xué)生及格;(3) 如果所有的學(xué)生都高于60分,則及格線為60分<
127、/p><p> 輸入:輸入10個整數(shù),取值0~100</p><p> 輸出:輸出及格線,10的倍數(shù)</p><p> #include<stdio.h></p><p> void bubblesort(int arr[])</p><p><b> {</b></p&g
128、t;<p> int i,j,temp;</p><p> for(i=0;i<10;i++)</p><p> for(j=0;j<9-i&&arr[j]>arr[j+1];j++)</p><p><b> {</b></p><p> temp=arr[j]
129、;</p><p> arr[j]=arr[j+1];</p><p> arr[j+1]=temp;</p><p><b> }</b></p><p><b> }</b></p><p> int GetPassLine(int a[])</p>
130、<p><b> {</b></p><p> bubblesort(a);</p><p> if(a[0]>=60)</p><p> return 60;</p><p><b> else</b></p><p> return (((
131、int)a[4]/10)*10);</p><p><b> }</b></p><p><b> main()</b></p><p><b> {</b></p><p> int a[10]={0};</p><p> int resul
132、t;</p><p> printf(“請隨機(jī)輸入10個成績(0-100):\n”);</p><p> scanf(“%d%d%d%d%d%d%d%d%d%d”,&a[0],&a[1],&a[2],&a[3],&a[4],&a[5],&a[6],&a[7],&a[8],&a[9]);</p>
133、<p> printf(“\n”);</p><p> result=GetPassLine(a);</p><p> printf(“及格線為:%d\n”,result);</p><p><b> return 1;</b></p><p><b> }</b></p
134、><p> 12.描述:一條長廊里依次裝有n(1 ≤ n ≤ 65535)盞電燈,從頭到尾編號1、2、3、…n-1、n。每盞電燈由一個拉線開關(guān)控制。開始,電燈全部關(guān)著。</p><p> 有n個學(xué)生從長廊穿過。第一個學(xué)生把號碼凡是1的倍數(shù)的電燈的開關(guān)拉一下;接著第二個學(xué)生把號碼凡是2的倍數(shù)的電燈的開關(guān)拉一下;接著第三個學(xué)生把號碼凡是3的倍數(shù)的電燈的開關(guān)拉一下;如此繼續(xù)下去,最后第n個學(xué)生把
135、號碼凡是n的倍數(shù)的電燈的開關(guān)拉一下。n個學(xué)生按此規(guī)定走完后,長廊里電燈有幾盞亮著。注:電燈數(shù)和學(xué)生數(shù)一致。</p><p><b> 輸入:電燈的數(shù)量</b></p><p> 輸出:亮著的電燈數(shù)量</p><p><b> 樣例輸入:3</b></p><p><b> 樣例輸出
136、:1</b></p><p> #include<stdio.h></p><p> #define Max_Bubl_Num 65535</p><p> int GetLightLampNum(int n)</p><p><b> {</b></p><p>
137、 int BublNum[Max_Bubl_Num]={0}; //0表示燈滅,1表示燈亮</p><p> unsigned int i,j;</p><p> unsigned int count=0;</p><p> for(i=1;i<=n;i++)</p><p> for(j=i;j<=n&&
138、;j%i==0;j++)</p><p><b> {</b></p><p> BublNum[j-1]+=1;</p><p> BublNum[j-1]=BublNum[j-1]%2;</p><p><b> }</b></p><p> for(int k
139、=0;k<n;k++)</p><p><b> {</b></p><p> if(BublNum[k]==1)</p><p><b> count++;</b></p><p><b> }</b></p><p> return
140、count;</p><p><b> }</b></p><p> int main()</p><p><b> {</b></p><p> int n,result;</p><p> printf(“請輸入燈的數(shù)量(1-65535):\n”);</p
141、><p> scanf(“%d”,&n);</p><p> result=GetLightLampNum(n);</p><p> printf(“最后亮燈的數(shù)量為:%d\n”,result);</p><p><b> return 0;</b></p><p><b>
142、 }</b></p><p> 13.描述:已知2條地鐵線路,其中A為環(huán)線,B為東西向線路,線路都是雙向的。經(jīng)過的站點(diǎn)名分別如下,兩條線交叉的換乘點(diǎn)用T1、T2表示。編寫程序,任意輸入兩個站點(diǎn)名稱,輸出乘坐地鐵最少需要經(jīng)過的車站數(shù)量(含輸入的起點(diǎn)和終點(diǎn),換乘站點(diǎn)只計算一次)。地鐵線A(環(huán)線)經(jīng)過車站:A1 A2 A3 A4 A5 A6 A7 A8 A9 T1 A10 A11 A12 A13 T2
143、 A14 A15 A16 A17 A18地鐵線B(直線)經(jīng)過車站:B1 B2 B3 B4 B5 T1 B6 B7 B8 B9 B10 T2 B11 B12 B13 B14 B15</p><p> 輸入:輸入兩個不同的站名</p><p> 輸出:輸出最少經(jīng)過的站數(shù),含輸入的起點(diǎn)和終點(diǎn),換乘站點(diǎn)只計算一次</p><p> 輸入樣例:A1 A3</p&
144、gt;<p><b> 輸出樣例:3</b></p><p> #include<stdio.h></p><p> #include<string></p><p> #include<queue></p><p> #include<vector>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論