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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

2019春第六周编程总结

發布時間:2023/12/20 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 2019春第六周编程总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
這個作業屬于哪個課程C語言程序設計Ⅱ
這個作業要求在哪里https://edu.cnblogs.com/campus/zswxy/MS/homework/2829
我在這個課程的目標是利用指針知識解決相關實際問題
在具體哪方面幫我實現目標設計密碼開鎖、交換變量解決問題以及電碼加密
參考文獻C語言基礎、http://www.w3school.com.cn/html/html_forms.asp

6-1 求兩數平方根之和 (10 分)
函數fun的功能是:求兩數平方根之和,作為函數值返回。例如:輸入12和20,輸出結果是:y = 7.936238。
函數接口定義:

double fun (double *a, double *b);

其中 a和 b是用戶傳入的參數。函數求 a指針和b 指針所指的兩個數的平方根之和,并返回和。
裁判測試程序樣例:

#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; }

輸入樣例:

12 20

輸出樣例:

y=7.94

實驗代碼:

#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;

設計思路:

遇到的問題及解決辦法:
此題比較順利,沒遇到什么問題。
運行結果截圖:

7-1 利用指針返回多個函數值 (30 分)
讀入n個整數,調用max_min()函數求這n個數中的最大值和最小值。
輸入格式:

輸入有兩行: 第一行是n值; 第二行是n個數。

輸出格式:

輸出最大值和最小值。

輸入樣例:
在這里給出一組輸入。例如:

5 8 9 12 0 3

輸出樣例:
在這里給出相應的輸出。例如:

max = 12 min = 0

實驗代碼:

#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];}} }

設計思路:

遇到問題及解決辦法:
在調用max_min函數時遇到瓶頸,后面查閱百度了解了相關知識。
運行結果截圖:

預習題:
6-3 最小數放前最大數放后 (10 分)
為一維數組輸入10個整數;將其中最小的數與第一個數對換,將最大的數與最后一個數對換;輸出數組元素。。
函數接口定義:

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

三個函數中的 arr和n 都是用戶傳入的參數。n 是元素個數。
input函數的功能是輸入 n個元素存到指針arr所指向的一維數組中。
max_min函數的功能是求指針arr所指向的一維數組中的最大值和最小值,其中最小的數與第一個數對換,將最大的數與最后一個數對換。
output函數的功能是在一行中輸出數組元素,每個元素輸出占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; }

/* 請在這里填寫答案 */
輸入樣例:

5 1 4 8 2 3 9 5 12 7

輸出樣例:

1 5 4 8 2 3 9 5 7 12

實驗代碼:

#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]); } }

設計思路:

遇到問題及解決辦法:
在反復調用fo循環以及if語句時出錯了,將sum、i、及中間變量t的值搞混淆了,最后問同學,了解了問題所在,并幫助我解決問題。
運行結果截圖:

思考題:
1.為什么要使用指針?它有什么用?
2.指針變量在內存中暫用多大的空間?它的大小由什么決定?
答:
1:

指針在很多情況可以用到。如 將一個結構體傳遞給一個函數。如果不用指針,傳送速度慢,如果通過指針,只要傳遞一個地址。

作用:

1)直接操作內存,程序效率更高; 2)可以寫復雜度更高的數據結構,程序員可以操作內存,也可以寫出靈活、復雜的數據結構; 3)編寫出簡潔、緊湊、高效的程序。

2:

指針只是一個地址,在匯編后都是一個32位的內存地址(32位系統), 指針變量本身所占存儲空間的大小取決于存儲地址值所需的字節數 。

學習進度表:

日期總代碼行數博客字數(個)所花時間知識點
03/03397814hour查找整數(函數章節)
03/09416805hour數組,文件
03/18455803hour數組、指針
03/2226+42+24=927206hour數組的綜合運用
03/2935+22=577907hour數組、指針
04/0517+38+52=1076506hour指針、數組、函數等

學習感悟:
本周系統的學習了指針的相關內容,并利用其解決實際問題,
對于如何畫好流程圖有了較好的認知;
我覺得本周的難點是變量的初始化以及使用指針作為函數的參數的運用。還將繼續學習指針的相關知識,能夠熟練的運用指針的知識解決實際問題。

轉載于:https://www.cnblogs.com/ImportantMagic/p/10659731.html

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。