2019春第六周编程总结
| 這個(gè)作業(yè)屬于哪個(gè)課程 | C語(yǔ)言程序設(shè)計(jì)Ⅱ |
| 這個(gè)作業(yè)要求在哪里 | https://edu.cnblogs.com/campus/zswxy/MS/homework/2829 |
| 我在這個(gè)課程的目標(biāo)是 | 利用指針知識(shí)解決相關(guān)實(shí)際問(wèn)題 |
| 在具體哪方面幫我實(shí)現(xiàn)目標(biāo) | 設(shè)計(jì)密碼開(kāi)鎖、交換變量解決問(wèn)題以及電碼加密 |
| 參考文獻(xiàn) | C語(yǔ)言基礎(chǔ)、http://www.w3school.com.cn/html/html_forms.asp |
6-1 求兩數(shù)平方根之和 (10 分)
函數(shù)fun的功能是:求兩數(shù)平方根之和,作為函數(shù)值返回。例如:輸入12和20,輸出結(jié)果是:y = 7.936238。
函數(shù)接口定義:
其中 a和 b是用戶(hù)傳入的參數(shù)。函數(shù)求 a指針和b 指針?biāo)傅膬蓚€(gè)數(shù)的平方根之和,并返回和。
裁判測(cè)試程序樣例:
輸入樣例:
12 20輸出樣例:
y=7.94實(shí)驗(yàn)代碼:
#include<stdio.h> #include <math.h> double fun (double *a, double *b); int main ( ) { double a, b, y; scanf ("%lf%lf", &a, &b );y=fun(&a, &b); printf ("y=%.2f\n", y ); return 0; } double fun(double *a,double *b) { double sum; sum=sqrt(*a)+sqrt(*b); return sum;設(shè)計(jì)思路:
遇到的問(wèn)題及解決辦法:
此題比較順利,沒(méi)遇到什么問(wèn)題。
運(yùn)行結(jié)果截圖:
7-1 利用指針?lè)祷囟鄠€(gè)函數(shù)值 (30 分)
讀入n個(gè)整數(shù),調(diào)用max_min()函數(shù)求這n個(gè)數(shù)中的最大值和最小值。
輸入格式:
輸出格式:
輸出最大值和最小值。輸入樣例:
在這里給出一組輸入。例如:
輸出樣例:
在這里給出相應(yīng)的輸出。例如:
實(shí)驗(yàn)代碼:
#include<stdio.h> void max_min(int sz[],int n,int *max,int *min); int main() {int i,max,min,n;scanf("%d",&n);int sz[n];for(i=0;i<n;i++){scanf("%d",&sz[i]);}max_min(&sz,n,&max,&min); printf("max = %d\nmin = %d\n",max,min);return 0; }void max_min(int sz[],int n,int *max,int *min) {int i;*max = *min = sz[0];for(i=0;i<n;i++){if(*max<sz[i]){*max=sz[i];}if(*min>sz[i]){*min=sz[i];}} }設(shè)計(jì)思路:
遇到問(wèn)題及解決辦法:
在調(diào)用max_min函數(shù)時(shí)遇到瓶頸,后面查閱百度了解了相關(guān)知識(shí)。
運(yùn)行結(jié)果截圖:
預(yù)習(xí)題:
6-3 最小數(shù)放前最大數(shù)放后 (10 分)
為一維數(shù)組輸入10個(gè)整數(shù);將其中最小的數(shù)與第一個(gè)數(shù)對(duì)換,將最大的數(shù)與最后一個(gè)數(shù)對(duì)換;輸出數(shù)組元素。。
函數(shù)接口定義:
三個(gè)函數(shù)中的 arr和n 都是用戶(hù)傳入的參數(shù)。n 是元素個(gè)數(shù)。
input函數(shù)的功能是輸入 n個(gè)元素存到指針arr所指向的一維數(shù)組中。
max_min函數(shù)的功能是求指針arr所指向的一維數(shù)組中的最大值和最小值,其中最小的數(shù)與第一個(gè)數(shù)對(duì)換,將最大的數(shù)與最后一個(gè)數(shù)對(duì)換。
output函數(shù)的功能是在一行中輸出數(shù)組元素,每個(gè)元素輸出占3列。
裁判測(cè)試程序樣例:
/* 請(qǐng)?jiān)谶@里填寫(xiě)答案 */
輸入樣例:
輸出樣例:
1 5 4 8 2 3 9 5 7 12實(shí)驗(yàn)代碼:
#include<stdio.h> void input(int *arr,int n); void max_min(int *arr,int n); void output(int *arr,int n); int main() { int a[10];input(a,10);max_min(a,10);output(a,10);return 0; } void input(int *arr,int n) { int i; for(i=0;i<n;i++) {scanf("%d",&arr[i]); } } void max_min(int *arr,int n) { int i,sum,t; sum=0; for(i=0;i<n;i++) {if(arr[i]>arr[sum])sum=i; } t=arr[n-1]; arr[n-1]=arr[sum]; arr[sum]=t; sum=0; for(i=0;i<n;i++) {if(arr[sum]>arr[i]){sum=i;} } t=arr[0]; arr[0]=arr[sum]; arr[sum]=t; } void output(int *arr,int n) { int i; for(i=0;i<n;i++) {printf("%3d",arr[i]); } }設(shè)計(jì)思路:
遇到問(wèn)題及解決辦法:
在反復(fù)調(diào)用fo循環(huán)以及if語(yǔ)句時(shí)出錯(cuò)了,將sum、i、及中間變量t的值搞混淆了,最后問(wèn)同學(xué),了解了問(wèn)題所在,并幫助我解決問(wèn)題。
運(yùn)行結(jié)果截圖:
思考題:
1.為什么要使用指針?它有什么用?
2.指針變量在內(nèi)存中暫用多大的空間?它的大小由什么決定?
答:
1:
作用:
1)直接操作內(nèi)存,程序效率更高; 2)可以寫(xiě)復(fù)雜度更高的數(shù)據(jù)結(jié)構(gòu),程序員可以操作內(nèi)存,也可以寫(xiě)出靈活、復(fù)雜的數(shù)據(jù)結(jié)構(gòu); 3)編寫(xiě)出簡(jiǎn)潔、緊湊、高效的程序。2:
指針只是一個(gè)地址,在匯編后都是一個(gè)32位的內(nèi)存地址(32位系統(tǒng)), 指針變量本身所占存儲(chǔ)空間的大小取決于存儲(chǔ)地址值所需的字節(jié)數(shù) 。學(xué)習(xí)進(jìn)度表:
| 日期 | 總代碼行數(shù) | 博客字?jǐn)?shù)(個(gè)) | 所花時(shí)間 | 知識(shí)點(diǎn) |
| 03/03 | 39 | 781 | 4hour | 查找整數(shù)(函數(shù)章節(jié)) |
| 03/09 | 41 | 680 | 5hour | 數(shù)組,文件 |
| 03/18 | 45 | 580 | 3hour | 數(shù)組、指針 |
| 03/22 | 26+42+24=92 | 720 | 6hour | 數(shù)組的綜合運(yùn)用 |
| 03/29 | 35+22=57 | 790 | 7hour | 數(shù)組、指針 |
| 04/05 | 17+38+52=107 | 650 | 6hour | 指針、數(shù)組、函數(shù)等 |
學(xué)習(xí)感悟:
本周系統(tǒng)的學(xué)習(xí)了指針的相關(guān)內(nèi)容,并利用其解決實(shí)際問(wèn)題,
對(duì)于如何畫(huà)好流程圖有了較好的認(rèn)知;
我覺(jué)得本周的難點(diǎn)是變量的初始化以及使用指針作為函數(shù)的參數(shù)的運(yùn)用。還將繼續(xù)學(xué)習(xí)指針的相關(guān)知識(shí),能夠熟練的運(yùn)用指針的知識(shí)解決實(shí)際問(wèn)題。
轉(zhuǎn)載于:https://www.cnblogs.com/ImportantMagic/p/10659731.html
總結(jié)
以上是生活随笔為你收集整理的2019春第六周编程总结的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 微星主板节能模式怎么关闭_技嘉小雕、微星
- 下一篇: Msfvenom木马使用及TheFatR