国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

藍(lán)橋杯——2009 北航計(jì)算機(jī)研究生機(jī)試真題(2017.2.4)

2019-11-14 10:27:44
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

1. 迭代求立方根

源代碼:

#include <stdio.h>int main(){	double x,n;	double y0,y1;	while(scanf("%lf %lf",&x,&n)!=EOF)	{		if(n==0)                            //迭代次數(shù)為0,直接開(kāi)3次方得結(jié)果 			y0=x;		else                                //迭代次數(shù)為n(n>=1) 		{			y1=x;                           //y1初值=x 			while(n)                        //進(jìn)行n次迭代 			{				y0= y1*2/3 + x/(3*y1*y1);   //使用迭代式,結(jié)果賦給y0 				y1=y0;                      //令y1等于上次迭代的結(jié)果 				n--;			}		}		PRintf("%lf/n",y0);                 //輸出最后一次(第n次)迭代的結(jié)果 	}	return 0;}程序截圖:

2. 數(shù)組排序

源代碼:

法一:利用排序算法+自定義輸出次序函數(shù)完成

#include <stdio.h>#define maxn 10010void Sort(int a[],int n){	int i,j,t;	for(i=0;i<n-1;i++)	{		for(j=0;j<n-1-i;j++)		{			if(a[j]>a[j+1])			{				t=a[j];				a[j]=a[j+1];				a[j+1]=t;			}		}	}}void Outputrank(int a[],int b[],int rank[],int n)//輸出數(shù)組元素排序次序 {	int i,j=1;                                   //j記錄次序 	int p,q,num=0;                               //num記錄找到的元素個(gè)數(shù) 	for(i=1;i<n;i++)                             //從第2個(gè)元素開(kāi)始遍歷 	{		if(a[i]!=a[i-1])                         //a[i]與a[i-1]不等,a[i]次序值比前者大1 		{			rank[i]=j+1;			j++;		}		else                                     //相等,則a[i]次序值與a[i-1]相等 			rank[i]=rank[i-1];	}	for(p=0;p<n;p++)                             //遍歷排序前與排序后的數(shù)組 	{		for(q=0;q<n;q++)		{			if(b[p]==a[q])                       //排序后的數(shù)組中的元素在排序前數(shù)組中找到 			{				num++;                           //找到元素?cái)?shù)+1 				if(num==n)                       //找到最后一個(gè)元素,輸出次序并換行 					printf("%d/n",rank[q]);				else                             //否則輸出次序加一個(gè)空格 					printf("%d ",rank[q]);				break;                           //找到,不再繼續(xù)查找后續(xù)元素 			}		}	}}int main(){	int i,n;	int a[maxn],b[maxn],rank[maxn]={1};         //三個(gè)數(shù)組分別存放輸入數(shù)據(jù) 排序后數(shù)據(jù) 排序次序(開(kāi)始全部初始化為1) 	while(scanf("%d",&n)!=EOF)	{		for(i=0;i<n;i++)		{			scanf("%d",&a[i]);			b[i]=a[i];		}		Sort(a,n);                              //對(duì)a數(shù)組冒泡排序 		Outputrank(a,b,rank,n);                 //輸出數(shù)組元素排序次序 	}	return 0;}

法二:利用排序算法+折半查找算法完成,效率有一定提高

#include <stdio.h>#define maxn 10010int HalfFind(int a[],int n,int x)            //折半查找元素x {	int low=0,high=n-1,mid;	while(low<=high)	{		mid=(low+high)/2;		if(a[mid]==x)                        //找到返回元素x的下標(biāo) 			return mid+1;		else if(a[mid]<x)			low=mid+1;		else			high=mid-1;	}}void Sort(int a[],int n){	int i,j,t;	for(i=0;i<n-1;i++)	{		for(j=0;j<n-1-i;j++)		{			if(a[j]>a[j+1])			{				t=a[j];				a[j]=a[j+1];				a[j+1]=t;			}		}	}}int main(){	int i,n,t;	int a[maxn],b[maxn],rank[maxn];             //三個(gè)數(shù)組分別存放輸入數(shù)據(jù) 排序后數(shù)據(jù) 排序次序	while(scanf("%d",&n)!=EOF)	{		for(i=0;i<n;i++)		{			scanf("%d",&a[i]);			b[i]=a[i];		}		Sort(b,n);                              //對(duì)b數(shù)組冒泡排序 		t=0;		for(i=0;i<n-1;i++)                      //刪除排好序的b數(shù)組中的重復(fù)元素		{			if(b[i]!=b[i+1])                    //t記錄排序次序 				rank[t++]=b[i];		}		rank[t++]=b[n-1];                       //把b數(shù)組最后一個(gè)元素作為rank數(shù)組的最后一個(gè)元素 		for(i=0;i<n;i++)                        //在rank數(shù)組中查找a數(shù)組(原始數(shù)組)中的元素,依次輸出各元素下標(biāo)         {            if(i!=n-1)                  printf("%d ",HalfFind(rank,t,a[i]));              else                printf("%d/n",HalfFind(rank,t,a[i]));          }	}	return 0;}程序截圖:

3. 字符串的查找刪除

時(shí)間限制:1 秒

內(nèi)存限制:32 兆

特殊判題:否

提交:5217

解決:2147

題目描述:

給定一個(gè)短字符串(不含空格),再給定若干字符串,在這些字符串中刪除所含有的短字符串。

輸入:

輸入只有1組數(shù)據(jù)。輸入一個(gè)短字符串(不含空格),再輸入若干字符串直到文件結(jié)束為止。

輸出:

刪除輸入的短字符串(不區(qū)分大小寫(xiě))并去掉空格,輸出。

樣例輸入:
in#include int main(){printf(" Hi ");}樣例輸出:
#cludetma(){prtf("Hi");}提示:

注:將字符串中的In、IN、iN、in刪除。

源代碼:

#include <stdio.h>#include <stdlib.h>#include <string.h>#include <math.h>#define maxlen 1001//以下三個(gè)數(shù)組分別記錄短字符串 若干個(gè)字符串 刪去指定字符后的若干行字符串 char str[maxlen],string[maxlen][maxlen],string2[maxlen][maxlen];int main(){    int i,j,k,n;	int index=0; 	gets(str);    while(gets(string[index]))    {		if(strcmp(string[index],"}") == 0)			break;		index++;    }	for(i=0;i<strlen(str);i++)                                //str大寫(xiě)轉(zhuǎn)換為小寫(xiě)	{		if(str[i]>='A' && str[i]<='Z')			str[i]+=32;	}	for(i=0;i<=index;i++)                                     //一行一行處理	{		for(j=0;j<strlen(string[i]);j++)		{			string2[i][j]=string[i][j];                       //string復(fù)制到string2中			if(string[i][j]>='A' && string[i][j]<='Z')				string[i][j]+=32;		}		j=0,k=0;                                              //匹配處理		for(j=0,k=0;j<strlen(string[i]); )                    //繼續(xù)比較后一字符 		{			if(string[i][j+k] == str[k])			{				k++;				if(k == strlen(str))                          //匹配成功					j+=k;			}			else                                              //重新開(kāi)始新的一輪匹配			{				if(string[i][j]!=' ')                         //去掉空格					printf("%c",string2[i][j]);				j++;				k=0;			}		}		printf("/n");	}    return 0;}程序截圖:


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 双城市| 霍林郭勒市| 兴文县| 荣昌县| 山东省| 龙海市| 深水埗区| 福贡县| 缙云县| 茂名市| 舟曲县| 海安县| 博爱县| 衡山县| 柳江县| 三台县| 花垣县| 十堰市| 萝北县| 银川市| 获嘉县| 乌兰察布市| 锦屏县| 南江县| 郎溪县| 长岛县| 聂拉木县| 高唐县| 永仁县| 湾仔区| 台中县| 板桥市| 德格县| 南溪县| 桦甸市| 裕民县| 北安市| 甘孜县| 阳朔县| 洛阳市| 禹州市|