實驗五報告

一、實驗結論:

1. 二分查找:
補足程序ex1_1.cpp
// 練習:使用二分查找,在一組有序元素中查找數據項
//  形參是數組,實參是數組名 
#include  <stdio.h>
const int N=5;
int binarySearch(int x[], int n, int item);
int main() {int a[N]={6,16,20,52,66};int i,index, key;printf("數組a中的數據:\n");for(i=0;i<N;i++)printf("%d ",a[i]);printf("\n");printf("輸入待查找的數據項: ");scanf("%d", &key);// 調用函數binarySearch()在數組a中查找指定數據項item,并返回查找結果給index // 補足代碼① // ××× index=binarySearch(a,N,key);if(index>=0) printf("%d在數組中,下標為%d\n", key, index);elseprintf("%d不在數組中\n", key); return 0;
}//函數功能描述:
//使用二分查找算法在數組x中查找特定值item,數組x大小為n 
// 如果找到,返回其下標 
// 如果沒找到,返回-1 
int binarySearch(int x[], int n, int item) {int low, high, mid;low = 0;high = n-1;while(low <= high) {mid = (low+high)/2;if (item == x[mid])return mid;else if(item<x[mid])high = mid - 1;elselow = mid + 1;}return -1;
}

補足程序ex1_2.cpp
// 練習:使用二分查找,在一組有序元素中查找數據項
//  形參是指針變量,實參是數組名
#include  <stdio.h>
const int N=5;
int binarySearch(int *x, int n, int item);
int main() {int a[N]={3,4,5,15,26};int i,index, key;printf("數組a中的數據:\n");for(i=0;i<N;i++)printf("%d ",a[i]);printf("\n");printf("輸入待查找的數據項: ");scanf("%d", &key);// 調用函數binarySearch()在數組a中查找指定數據項item,并返回查找結果// 補足代碼①// ××× index=binarySearch(a, N, key);if(index>=0) printf("%d在數組中,下標為%d\n", key, index);elseprintf("%d不在數組中\n", key); return 0;
}//函數功能描述:
//使用二分查找算法在x指向的數據項開始的n個數據中,查找item
// 如果找到,返回其位置
// 如果沒找到,返回-1 
int binarySearch(int *x, int n, int item) {int low, high, mid;low = 0;high = n-1;while(low <= high) {mid = (low+high)/2;if (item == *(x+mid))return mid;else if(item < *(x+mid))high = mid - 1;elselow = mid + 1;}return -1;
}

2. 選擇法排序
補足程序ex2_2.cpp
// 練習:使用選擇法對字符串按字典序排序
#include <stdio.h>
#include <string.h>
void selectSort(char str[][20], int n ); // 函數聲明,形參str是二維數組名 
int main() {char name[][20] = {"Yang", "Hai", "Yi", "Huang", "Yu","Ting"};int i;printf("輸出初始名單:\n");for(i=0; i<6; i++)printf("%s\n", name[i]);selectSort(name, 6);  // 調用選擇法對name數組中的字符串排序
    printf("按字典序輸出名單:\n");for(i=0; i<6; i++)printf("%s\n", name[i]);return 0;
} // 函數定義
// 函數功能描述:使用選擇法對二維數組str中的n個字符串按字典序排序 
void selectSort(char str[][20], int n) {int i,j;char t[20];for(i=0;i<n-1;i++){for(j=0;j<n-i-1;j++){strcmp(str[j],str[j+1]);if(strcmp(str[j],str[j+1])>0){strcpy(t,str[j]);strcpy(str[j],str[j+1]);strcpy(str[j+1],t);}}}}

3. 用指針處理字符串
練習2(黃色為修改部分)
// 用指針變量處理字符串練習2
// 刪除中間和末尾的* (即除了前導*,刪除字符串中其它全部*) 
#include <stdio.h>
void delStarButPrefix(char []); // 函數聲明(函數聲明中可以省略數組名不寫) int main() {char string[80];printf("輸入一個字符串:\n");gets(string);printf("\n刪除<中間和末尾的*>之前的字符串:\n");puts(string);delStarButPrefix(string);  // 調用函數,刪除中間和末尾的*; 注意實參的寫法 
    printf("\n刪除<中間和末尾的*>之后的字符串:\n");puts(string);return 0;
} // 函數定義
// 函數功能描述
// 刪除字符數組s中除了前導*以外的所有*(即刪除字符串中間和末尾出現的*) 
void delStarButPrefix(char s[]) {int i=0;              // i用于記錄字符在字符數組s中的下標 char *p = s;// 跳過前導*,i記錄字符在字符數組s中的下標,p記錄首個非*字符的位置 while(*p == '*') {    //while(*p && *p == '*') 不太懂什么意思 就去掉了*p p++;i++;}// 從p指向的字符開始,把遇到的*刪除 while(*p) {if(*p != '*') {s[i] = *p;i++;p++;}elsep++;         //開始不太懂p++不在if里面 就分開寫了 
    } s[i] = '\0';   // *p=0是就結束循環了 s[i]沒有被賦結束符號
}

練習1、3未改動

?

二、實驗總結:

1.數組名作為參數 vs. 指針變量作為參數在形參、實參寫法

?數組名作為函數參數,傳遞的值是地址。

?case1: 實參—數組名,形參—數組名?

void f( int [] , int );
int  main() {int a[5];…f(a,5);…
}
void f( int x[], int n ){…
}

case2: 實參—數組名,形參——指針變量

void f (int *, int );
int  main() {int a[10];…f(a,10);…
}
void f (int *p, int n ) {…
}

case3: 實參—指針變量,形參—數組名

void f( int [] , int );
int  main() {int a[5], *p;p = a;…f(p,5);…
}
void f( int x[], int n ){…
}

case4: 實參—指針變量,形參—指針變量

void f( int [] , int );
int  main() {int a[5], *p;p = a;…f(p,5);…
}
void f( int *q, int n ){…
}

?

2.常用指針定義小結

3.使用選擇法對字符串排序時注意事項:

? 注意字符串的比較和賦值,不能直接使用關系運算符和賦值運算符,要借助字符串處理函數。?

4.使用指針變量對字符串進行處理?

?

轉載于:https://www.cnblogs.com/xiaerhe/p/10898616.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/386747.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/386747.shtml
英文地址,請注明出處:http://en.pswp.cn/news/386747.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

關于瀏覽器內核

介紹一下對瀏覽器內核的理解主要分成兩個部分&#xff1a;渲染引擎(Render Engine)和JS引擎。常見的瀏覽器內核有哪些&#xff1f;Trident內核&#xff1a;IE&#xff0c;360&#xff0c;搜過瀏覽器&#xff1b;Gecko內核&#xff1a;Netscape6及以上版本&#xff0c;Presto內核…

docker 全部殺掉

殺死所有正在運行的容器 docker kill $(docker ps -a -q) 刪除所有已經停止的容器 docker rm $(docker ps -a -q) 刪除所有未打 dangling 標簽的鏡像 docker rmi $(docker images -q -f danglingtrue) 刪除所有鏡像 docker rmi $(docker images -q) 強制刪除鏡像名稱中包含“do…

實驗五 網絡編程與安全-----實驗報告

一、實驗五 網絡編程與安全-1 1.實驗要求&#xff1a; 兩人一組結對編程&#xff1a; &#xff08;1&#xff09;參考http://www.cnblogs.com/rocedu/p/6766748.html#SECDSA &#xff1b; &#xff08;2&#xff09;結對實現中綴表達式轉后綴表達式的功能 MyBC.java&#xff1b…

K8S的HelloWorld之旅

安裝kubectl。使用Google提供商&#xff08;如Google Container Engine或Amazon Web Services&#xff09;創建Kubernetes群集。本教程創建一個 外部負載均衡器&#xff0c;它需要一個云提供商。配置kubectl與Kubernetes API服務器通信。有關說明&#xff0c;請參閱云提供商的文…

思維構造——cf1090D

/* 只要找到兩個沒有關系的點即可 */ #include<bits/stdc.h> using namespace std; #define maxn 100005 long long n,m; int a[maxn],b[maxn]; vector<int>G[maxn]; int main(){cin>>n>>m;if(n1){puts("NO");return 0;}if(n*(n-1)/2<m)…

誤刪docker0網橋之后怎么辦呢?

誤刪docker0網橋之后怎么辦呢&#xff1f; 今天&#xff0c;在搭建k8s node節點環境的時候&#xff0c;好巧不巧&#xff0c;執行了如下命令&#xff1a; 1 2 [roothxin221 ~]# ifconfig docker0 down &>/dev/null [roothxin221 ~]# brctl delbr docker0 &>/de…

boost.asio學習

https://mmoaay.gitbooks.io/boost-asio-cpp-network-programming-chinese/content/Chapter1.html轉載于:https://www.cnblogs.com/hshy/p/10930398.html

Harbor:私有企業級Registry倉庫--快速搭建

前言 Harbor可以通過Docker Composer的方式來部署&#xff0c;如果有正常運行的k8s環境&#xff0c;也可以使用k8s來部署Harbor&#xff0c;本文采用 Docker Composer的方式。 準備 假定Linux系統為Centos 7。 docker &#xff0c;默認安裝即可 yum -y install docker 1 dock…

java-Mysql學生管理系統

Window1//主方法 package stu_zizhu1; import java.awt.Button; import java.awt.Color; import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.Point; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JBu…

Docker版本Jenkins的使用

Docker版本Jenkins的使用 低調的微胖關注贊賞支持 Docker版本Jenkins的使用 12018.05.15 18:21:50字數 1202閱讀 22588 一. 什么是Jenkins Jenkins是當前非常流行的一款持續集成工具&#xff0c;可以幫助大家把更新后的代碼自動部署到服務器上運行。 二. 為什么用docker版…

小程序 setData 中的坑,其實好像...

最近這段時間在寫微信小程序&#xff0c;有一個頁面需要動態修改 data 中的數據&#xff0c;而這里似乎是個坑。 1、正常修改 正常修改很簡單&#xff0c;當觸發 change 事件時&#xff0c;數據和頁面都會同時發生改變。這個也不用多說&#xff0c;很簡單的例子。 2、如何修改對…

CentOS HarBor安裝與配置

HarBor 安裝與配置 Prerequisites for the target host ResourceCapacityDescriptionCPUminimal 2 CPU4 CPU is preferredMemminimal 4GB8GB is preferredDiskminimal 40GB160GB is preferred 環境 centos7harbor v1.6.3python v2.7及以上docker v1.10及以上docker-compose …

冪等

一種方案是創建唯一索引。在數據庫中針對我們需要約束的資源字段創建唯一索引&#xff0c;可以防止插入重復數據。但是&#xff0c;遇到分庫分表的場景&#xff0c;唯一索引也就不那么好使了&#xff0c; 此時&#xff0c;我們可以先查詢數據庫&#xff0c;判斷約束的資源字段是…

ELK 刪除索引只保留10天

delelk.sh&#xff1a; #!/bin/bash #定時清除elk索引&#xff0c;10天 DATEdate -d "10 days ago" %Y.%m.%d curl -XDELETE "http://127.0.0.1:9400/*-${DATE}" 127.0.0.1:9400 ES的地址 定時任務執行此腳本 30 17 * bash /home/scripts/delelk.sh

通過ceph-deploy搭建ceph 13.2.5 mimic

一、ceph介紹 操作系統需要內核版本在kernel 3.10或CentOS7以上版本中部署通過deploy工具安裝簡化部署過程&#xff0c;本文中選用的ceph-deploy版本為1.5.39至少準備6個環境&#xff0c;分別為1個ceph-admin管理節點、3個mon/mgr/mds節點、2個osd節點二、ceph安裝 1. 部署ceph…

openstack服務編排

heat列出所有組件時報錯 ERROR: 503 Service Unavailable The server is currently unavailable. Please try again at a later time. 錯誤&#xff1a;503服務不可用 cu錯 w誤 &#xff1a; 5 0 3 f服 w務 b不 kě可 yng用 The server is currently unavailable. Please tr…

phpstudy如何安裝景安ssl證書 window下apache服務器網站https訪問

1. 下載景安免費證書 https://www.zzidc.com/help/helpDetail?id555 2.文件解壓上傳至服務器&#xff0c;位置自己決定 3. 調整apache配置 景安原文鏈接&#xff1a;https://www.zzidc.com/help/helpDetail?id555 ① 確保你的apache編譯了ssl模塊&#xff0c;這是支持ssl證書…

docker下gitlab安裝配置使用(完整版)

docker下gitlab安裝配置使用(完整版) 22018.12.16 00:07:57字數 737閱讀 17595 docker 安裝gitlab以及使用 一、安裝及配置 1.gitlab鏡像拉取 # gitlab-ce為穩定版本&#xff0c;后面不填寫版本則默認pull最新latest版本 $ docker pull gitlab/gitlab-ce拉取鏡像 2.運行g…

hdfs的特性、命令、安全模式、基準測試

1.第一點&#xff1a;如何理解hdfs分布式文件系統&#xff0c;每臺機器出一塊磁盤&#xff0c;湊成一個大的硬盤&#xff0c;大的硬盤的容量來自各個服務器的硬盤容量之和。 你出5毛&#xff0c;我出5毛&#xff0c;大家湊成1塊。 2. HDFS 是 Hadoop Distribute File System 的…

如何push一個docker鏡像到DockerHub上

如何push一個docker鏡像到DockerHub上 2018.01.03 11:31:39字數 139閱讀 202 有時候想要保存自己的docker鏡像&#xff0c;又不想自己搭建docker registry&#xff0c;那么就可以了借用DockerHub來用&#xff0c;一般不會有多少人在意你的鏡像&#xff0c;不過萬一被人看上了…