第八週做業:
數組
(1)函數實現字符串逆序:
本題要求實現一個字符串逆序的簡單函數。
函數接口定義:函數
void f( char *p );
函數f對p指向的字符串進行逆序操做。要求函數f中不能定義任何數組,不能調用任何字符串處理函數。
裁判測試程序樣例:學習
#include <stdio.h> #define MAXS 20 void f( char *p ); void ReadString( char *s ); /* 由裁判實現,略去不表 */ int main() { char s[MAXS]; ReadString(s); f(s); printf("%s\n", s); return 0; } /* 你的代碼將被嵌在這裏 */
輸入樣例:測試
Hello World!
輸出樣例:設計
!dlroW olleH
1.實驗代碼:3d
void f( char *p ) { int i,n=0,j,t; while(p[i]!='\0') //測量字符串的長度// i++; j=i-1; while(n<=j) { t=p[n]; //進行首位交換// p[n]=p[j]; p[j]=t; n++; j--; } return; }
2.設計思路:
流程圖下週做業補上。code
3.問題及解決方法:
本題主要問題是對於字符串測量有點小問題,不過還行,就是首位交換的時候須要注意一下。blog
4.運行結果截圖:
排序
(2)字符串的鏈接:
本題要求實現一個函數,將兩個字符串鏈接起來。
函數接口定義:接口
char *str_cat( char *s, char *t );
函數str_cat應將字符串t複製到字符串s的末端,而且返回字符串s的首地址。
裁判測試程序樣例:
#include <stdio.h> #include <string.h> #define MAXS 10 char *str_cat( char *s, char *t ); int main() { char *p; char str1[MAXS+MAXS] = {'\0'}, str2[MAXS] = {'\0'}; scanf("%s%s", str1, str2); p = str_cat(str1, str2); printf("%s\n%s\n", p, str1); return 0; } /* 你的代碼將被嵌在這裏 */
輸入樣例:
abc def
輸出樣例:
abcdef abcdef
1.實驗代碼:
char *str_cat( char *s, char *t ) { char *p; p=strcat(s,t); return p; }
2.設計思路:
流程圖下週做業補上。
3.問題及解決方法:
首先的問題是測量str字符串長度,可是看下書仍是能夠解決,而後對於字符串t複製到字符串s的末端有點不太懂。本題本身只會一點點,參照了百度資料。
4.運行結果截圖:
(3)輸出學生成績 :
本題要求編寫程序,根據輸入學生的成績,統計並輸出學生的平均成績、最高成績和最低成績。建議使用動態內存分配來實現。
輸入格式:
輸入第一行首先給出一個正整數N,表示學生的個數。接下來一行給出N個學生的成績,數字間以空格分隔。
輸出格式:
按照如下格式輸出:
average = 平均成績 max = 最高成績 min = 最低成績
結果均保留兩位小數。
輸入樣例:
3 85 90 95
輸出樣例:
average = 90.00 max = 95.00 min = 85.00
1.實驗代碼:
#include <stdio.h> int main() { int n, a[9999]; double average, max = 0, min = 1000, sum = 0; //根據題目要求保留兩位小數// scanf("%d", &n); for (int i = 0; i < n; i++) //利用for循環進行累加// { scanf("%d", &a[i]); sum += a[i]; } average = sum / n; for (int i = 0; i < n; i++) //經過冒泡排序法尋找最值// { if (a[i] > max) max = a[i]; if (a[i] < min) min = a[i]; } printf("average = %.2f\n", average); //依次輸出平均成績和最大值和最小值// printf("max = %.2f\n",max); printf("min = %.2f\n",min); return 0; }
2.設計思路:
流程圖下週做業補上。
3.問題及解決方法:
題目前面還行,利用for循環累加等等,本題涉及到冒泡排序法,可是本身對於冒泡排序仍是有點不理解,而後主要仍是不知道怎麼使用動態內存分配來實現。
對於這種題目仍是有點不理解的,經過百度能夠找到一點方法。
4.運行結果截圖:
(4)本題能力有限。
學習進度條:
學習感悟: 仍是那句老話,隨着課程的進行,知識越來多,題目也愈來愈難,困惑也愈來愈多。上課也跟不上。感悟就是 難!