日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

第6周编程总结

發(fā)布時間:2023/12/20 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第6周编程总结 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
這個作業(yè)屬于哪個課程C語言程序設(shè)計Ⅱ
這個作業(yè)要求在哪里https://edu.cnblogs.com/campus/zswxy/software-engineering-class2-2018/homework/2888
我在這個課程的目標(biāo)是指針怎么使用更加方便,解決指針的簡單問題
這個作業(yè)在哪個具體方面幫助我實(shí)現(xiàn)目標(biāo)使用指針解決問題,了解它的使用方法
參考文獻(xiàn)C語言程序設(shè)計

結(jié)對隊(duì)友:

劉超君

結(jié)對感想:

我們倆個基本是菜雞互啄,把第一題寫了就沒了下一題,然后就把后面題目的思路討論了一下,還瀏覽一些別人的博客.

6-1 求兩數(shù)平方根之和 (10 分)

函數(shù)fun的功能是:求兩數(shù)平方根之和,作為函數(shù)值返回。例如:輸入 12 和 20,輸出結(jié)果是:y = 7.936238。
函數(shù)接口定義:
double fun (double *a, double *b);
其中 a和 b是用戶傳入的參數(shù)。函數(shù)求 a指針和b 指針?biāo)傅膬蓚€數(shù)的平方根之和,并返回和。
裁判測試程序樣例:

#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; }/* 請?jiān)谶@里填寫答案 */ double fun (double *a, double *b) {double n; n=sqrt(*a)+sqrt(*b);return n; }

實(shí)驗(yàn)思路

按照題目要求把double函數(shù)把指針來用到數(shù)學(xué)函數(shù)sqrt()中相加,然后返回n的值

流程圖


本題遇到的問題
基本沒什么
解決方法

正確截圖

7-1 利用指針返回多個函數(shù)值 (30 分)

讀入n個整數(shù),調(diào)用 max_min()函數(shù)求這n個數(shù)中的最大值和最小值。
輸入格式:
輸入有兩行:第一行是n值; 第二行是n個數(shù)。
輸出格式:
輸出最大值和最小值。
輸入樣例:
在這里給出一組輸入。例如:

5 8 9 12 0 3

輸出樣例:
在這里給出相應(yīng)的輸出。例如:

max = 12 min = 0

實(shí)驗(yàn)代碼

#include<stdio.h> void max_min(int n,int *a); int main(){int n,i;scanf("%d",&n);int a[n];for(i = 0;i < n;i++){scanf("%d",(a+i));} max_min(n,a);return 0;}void max_min(int n,int *a){int t;for(int i=0;i<n-1;i++){for(int j=0;j<n-i-1;j++){if(*(a+j)<*(a+j+1)){t=*(a+j+1);*(a+j+1)=*(a+j);*(a+j)=t; }}}printf("max = %d\n", *(a));printf("min = %d\n", *(a + n - 1));}

實(shí)驗(yàn)思路

輸入一個數(shù)組a[n],在自定義函數(shù)中定義一個變量來中轉(zhuǎn),找出最大值和最小值

流程圖

本題遇到的問題
自定義函數(shù)老是出現(xiàn)錯誤,一開始沒有理解 scanf("%d",(a+i)),后面又去百度,這里是地址a+i,不需要&,
解決方法
去百度看了很多代碼,還去問了同學(xué)

正確截圖

錯誤截圖

6-3 最小數(shù)放前最大數(shù)放后 (10 分)

為一維數(shù)組輸入10個整數(shù);將其中最小的數(shù)與第一個數(shù)對換,將最大的數(shù)與最后一個數(shù)對換;輸出數(shù)組元素。。
函數(shù)接口定義:

void input(int *arr,int n); void max_min(int *arr,int n); void output(int *arr,int n);

三個函數(shù)中的arr和 n都是用戶傳入的參數(shù)。 n 是元素個數(shù)。
input函數(shù)的功能是輸入 n個元素存到指針arr所指向的一維數(shù)組中。
max_min函數(shù)的功能是求指針arr所指向的一維數(shù)組中的最大值和最小值,其中最小的數(shù)與第一個數(shù)對換,將最大的數(shù)與最后一個數(shù)對換。
output函數(shù)的功能是在一行中輸出數(shù)組元素,每個元素輸出占3列。
裁判測試程序樣例:

#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; }/* 請?jiān)谶@里填寫答案 */

輸入樣例:

5 1 4 8 2 3 9 5 12 7

輸出樣例:

1 5 4 8 2 3 9 5 7 12

實(shí)驗(yàn)代碼

void input(int *arr,int n) {for(int i=0;i<n;i++)scanf("%d",&arr[i]);} void max_min(int *arr,int n) {int max,min,t;max=min=arr[0];for(int i=0;i<n;i++){if(max<arr[i])max=i;if(min>arr[i])min=i;}t=arr[max];arr[max]=arr[n-1];arr[n-1]=t;t=arr[0];arr[0]=arr[min];arr[min]=t; } void output(int *arr,int n) {for(int i=0;i<n;i++){printf("%3d",arr[i]);} }

實(shí)驗(yàn)思路

定義三個函數(shù),一個輸入一個數(shù)組arr[i],一個在自定義函數(shù)中找出最大最小值,把最大值賦給arr[9],最小值給arr[0],最后一個函數(shù)按照題目要求輸出

流程圖

本題遇到的問題
思路清晰,動手敲代碼的時候真的不知道怎么開始,
解決方法
詢問室友,仔細(xì)看了題目,然后慢慢嘗試

正確截圖

錯誤截圖

學(xué)習(xí)總結(jié)

學(xué)習(xí)感悟

有些題目要多去看題目要求,用相似的題目來理解思路
學(xué)習(xí)要多積累挫折,多看書,看例題,讓頭腦清醒

思考題

為什么要使用指針?它有什么用?
因?yàn)槲覀円獙W(xué)啊,要作業(yè)啊,指針是指向一個特定內(nèi)存地址的一個變量,它存儲一個內(nèi)存地址,在數(shù)組某些方面更加簡單,效率更高.
指針變量在內(nèi)存中暫用多大的空間?它的大小由什么決定?
32位編譯器時指針占4個字節(jié).64位編譯器時指針占8個字節(jié),由編譯器的版本決定

轉(zhuǎn)載于:https://www.cnblogs.com/I-FEAR-ONLY-TIME/p/10659268.html

總結(jié)

以上是生活随笔為你收集整理的第6周编程总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。