2019春季第五週做業編程
這個做業屬於哪一個課程 | C語言程序設計ll |
這個做業要求在哪裏 | (https://edu.cnblogs.com/campus/zswxy/software-engineering-class2-2018/homework/2824) |
我在這個課程的目標是 | 但願能多瞭解一維字符數組及字符串的用法,之後遇見相似的題目時可以不出錯誤的作出來 |
這個做業在哪一個具體方面幫助我實現目標 | 這個做業讓我大概瞭解了使用字符串編程,而且對一維數組有了更深刻的瞭解 |
參考文獻 | (https://www.jb51.net/article/37456.htm) |
本題目要求編寫程序統計一行字符中單詞的個數。所謂「單詞」是指連續不含空格的字符串,各單詞之間用空格分隔,空格數能夠是多個。數組
輸入給出一行字符。學習
在一行中輸出單詞個數。.net
Let's go to room 209.
5
#include<stdio.h> #include<string.h> int main() { int i,j,x; char a[1000]; gets(a); //從標準輸入文件讀入一個字符串到字符數組a,輸入字符串以回車結束 x=strlen(a); //計算字符串長度x if(a[0]==' ') j=0; else j=1; for(i=0;i<x-1;i++) { if(a[i]==' ' && a[i+1]!=' ') j++; } printf("%d\n",j); return 0; }
問題1:定義字符串數組的時候不太清楚a[100]與a[1000]的區別,定義成a[100]就是錯的
解決方法:本身查了資料,而後問了班上的大佬設計
問題2:不太清楚get char與gets的區別
解決方法:翻書看,get char表示從標準輸入文件讀入一個字符,而gets表示讀入一串字符3d
本題要求編寫程序,輸入若干英文單詞,對這些單詞按長度從小到大排序後輸出。若是長度相同,按照輸入的順序不變。指針
輸入爲若干英文單詞,每行一個,以#做爲輸入結束標誌。其中英文單詞總數不超過20個,英文單詞爲長度小於10的僅由小寫英文字母組成的字符串。調試
輸出爲排序後的結果,每一個單詞後面都額外輸出一個空格。code
blue red yellow green purple #
red blue green yellow purple
#include<stdio.h> #include<stdlib.h> #include<string.h> main() { FILE*fp; char a[20][10],m[20],x[10]; int i,j,n=0; if((fp=fopen("C:\\Users\\Administrator\\Desktop\\zhangman.txt","r+"))==NULL) //打開文件 { printf("File open error!\n"); exit(0); } while(1) { fscanf(fp,"%s", x); scanf("%s",x); //輸入字符串數組 if(x[0]=='%') { break; } else { strcpy(a[n],x); //把數組x的值賦給數組a[n] n++; } } for(i=0;i<n-1;i++) //計算字符串長度並進行比較 for(j=1;j<n;j++) { if(strlen(a[j])<strlen(a[j-1])) { strcpy(m,a[j-1]); strcpy(a[j-1],a[j]); strcpy(a[j],m); } } for(i=0;i<n;i++) //輸出字符串數組 { printf("%s ",a[i]); } fprintf(fp,"\n"); for(i=0;i<n;i++) { fprintf(fp,"%s ",a[i]); } if(fclose(fp)) //關閉文件 { printf("Can not close the file!\n"); exit(0); } return 0; }
問題1:在寫代碼的時候沒有定義二維數組,致使一直答案錯誤
解決方法:一直運行仍是沒發現哪裏錯誤,而後搜了百度,後來問的班上的大佬htm
問題2:第一次 遇到strcpy,不太清楚它的含義及用法
解決方法:查資料,問了大佬,大概瞭解了它的用法
預習了指針的第1小節密碼開鎖,程序中定義了變量x來存放密碼,再定義一個特殊的指針變量p,用於存放變量x的地址。這樣既能夠經過變量名x直接獲得密碼值,也能夠在不知道變量名的狀況下,經過指針變量p所存放的x的地址間接找到密碼值。地址和指針是計算機中的兩個重要概念,在程序運行過程當中,變量或者程序代碼被儲存在以字節爲單位組織的存儲器中。在C語言中,若是定義了一個變量,在編譯時就會根據該變量的類型給它分配相應大小的內存單元。指針聲明符在定義指針時被使用,說明被定義的那個變量是指針。定義多個指針變量時,每個指針變量前面都必須加上。指針的類型和它所指向變量的類型必須相同。只能將一個指針的值賦給另外一個相同類型的指針。
疑惑1:不太能區份內存單元的內容和內存單元的地址
疑惑2:把指針用到程序中還有不少地方不懂
疑惑3:對於指針的基本運算也不是很清楚。
周/日期 | 這周所花的時間 | 代碼行數 | 學到的知識點簡介 | 目前比較迷惑的問題 |
---|---|---|---|---|
2/25-3/3 | 三天 | 45 | 數組的認識及用法 | 數組長度的理解 |
3/4-3/10 | 兩天 | 37 | 編寫程序時處理文件 | fscanf與fprintf的具體用法 |
3/11-3/17 | 三天 | 112 | 二維數組的使用及文件插入 | 二維數組的用法、上三角的判斷及文件的處理 |
3/18-3/24 | 兩天 | 113 | 選擇排序法、二分查找法、二維數組的引用與矩陣 | 不清楚選擇排序法和冒泡排序法的區別 |
3/25-3/31 | 兩天 | 78 | 判斷迴文、一維字符數組的用法、使用字符串編程 | 使用字符串編程 |
本週學習了:
判斷迴文,其中學的包括了一維字符數組,一維字符數組用於存放字符型數據,它的定義、初始化和引用與其餘類的一維數組同樣;另外,還學習了字符串及使用字符串編程,字符串常量就是用一對雙引號括起來的字符序列,C語言將字符串做爲一個特殊的一維字符數組來處理。
目前對使用字符串數組不是特別清楚。
感悟:寶劍鋒從磨礪出,梅花香自苦寒來。
每週三晚自習是咱們結對編程的時間,個人搭檔每次都來的,可是咱們基本不討論,都是本身作本身的,對於咱們來講討論有點擾亂本身的思路,好不容易想出來的題目只要對方說句話就有可能忘了,因此,咱們通常都是寫完做業後才討論或者就瞎聊,結對編程對咱們來講好像沒有什麼做用,不知道對其餘同窗有沒有什麼效果。