這個做業屬於哪一個課程 | C語言程序設計 |
這個做業的要求在哪裏 | (https://edu.cnblogs.com/campus/zswxy/software-engineering-class2-2018/homework/2824) |
我在這個課程的目標是 | 瞭解字符數組與字符串的區別,學習字符串的輸入輸出格式,預習指針 |
這個做業在哪一個具體方面幫助我實現目標 | 讓我瞭解了字符數組與字符串的區別,知道了數組的複製方法 |
參考文獻 | C語言數組的複製 |
本題要求編寫程序,輸入若干英文單詞,對這些單詞按長度從小到大排序後輸出。若是長度相同,按照輸入的順序不變。
輸入格式:
輸入爲若干英文單詞,每行一個,以#做爲輸入結束標誌。其中英文單詞總數不超過20個,英文單詞爲長度小於10的僅由小寫英文字母組成的字符串。
輸出格式:
輸出爲排序後的結果,每一個單詞後面都額外輸出一個空格。
輸入樣例:html
blue red yellow green purple #
輸出樣例:編程
red blue green yellow purple
#include<stdio.h> #include<string.h> #include<stdlib.h> int main() { FILE *fp;//定義文件指針 char str[21][11],b[11]; int i=0; //打開文件 if((fp=fopen("E:\\Liuwei.txt","a+"))==NULL){ exit(0); } //文件處理 for(i=0;i<21;i++){ fscanf(fp,"%s",str[i]); if (str[i][0]=='-') break; } int z=i; //將每一個單詞排序 for(int m=0;m<z;m++){ for(int n=0;n<z-m-1;n++){ if(strlen(str[n])>strlen(str[n+1])){ strcpy(b,str[n]); strcpy(str[n],str[n+1]); strcpy(str[n+1],b); } } } //寫入文件 for(int m=0;m<z;m++){ if(m==0){ fprintf(fp,"\n"); } fprintf(fp,"%s ",str[m]); } //關閉文件 if(fclose(fp)){ exit(0); } return 0; }
問題:不知道怎樣計算每一個單詞的長度,用getchar()方法輸入太複雜。
解決辦法:看了網友的代碼,看懂後發現有好簡單代碼能夠用,如數組長度計算代碼strlen和字符串複製代碼strcpy,只是本身不知道,搞懂後我用本身的方法作了出來。數組
本題目要求編寫程序統計一行字符中單詞的個數。所謂「單詞」是指連續不含空格的字符串,各單詞之間用空格分隔,空格數能夠是多個。
輸入格式:
輸入給出一行字符。
輸出格式:
在一行中輸出單詞個數。
輸入樣例:函數
Let's go to room 209.
輸出樣例:學習
5
#include<stdio.h> int main() { char str[1000]; int k=0,q=0; //賦值以'\n'結尾 //gets 是讀取換行符的,不過它會把換行符轉換爲'\0' gets(str); while(str[k]!='\0'){ k++; } //該賦值的結果爲str[k]=='\0',因此for循環判斷i<=k才能將'\0'包括進去 for(int i=1;i<=k;i++){ //只要前面不是空格,後面是空格就必定有一個單詞 if(str[i-1]!=' '&&str[i]==' '){ q++; } //若'\n'以前不以空格結尾,則上面的判斷就少加一個單詞。 if(str[i-1]!=' '&&str[i]=='\0'){ q++; } } printf("%d",q); return 0; }
問題:一開始我也不知道怎麼在pta上過不了,總以爲代碼沒有問題。
解決辦法:看了網友的代碼,我跟他們的代碼大同小異,就是定義的數組空間個人是100,他們的是1000,我改爲1000後就過了,看了是個人數組空間定義小了設計
1.指針變量的定義
2.指針的基本運算
3.指針變量的初始化
4.指針和地址3d
1.二級指針**p怎麼理解和運用
2.指針和函數參數的關係
3.指針不能靈活運用,如今感受指針的用處好像不大。指針
周/日期 | 這周所花的時間 | 代碼行 | 學到的知識點簡介 | 目前比較迷惑的問題 |
---|---|---|---|---|
2/25-3/3 | 6h | 30 | 一維數組的定義和引用及初始化 | 字符數組和整型數組的區別 |
3/4-3/10 | 12h | 60 | 指針的定義及運用;文件的讀取、寫入, 處理和開關;文件的打開方. | 文件的分類,什麼是文本文件, 什麼是二進制文件;字符數組的讀取和寫入 |
3/11-3/17 | 6h | 30 | 二維數組的定義及應用 | 二維數組的行和列的嵌套循環輸入和輸出 |
3/18-3/24 | 12h | 60 | 選擇排序法、冒泡排序法和二分查找法 | 不清楚選擇排序法和冒泡排序法的區別 |
3/25-3/31 | 20h | 60 | 字符數組和字符串的區別,字符串的輸入輸出方式和格式,二維數組更高級的運用。 | 不清楚指針在程序中的做用 |
感受此次做業比較難,我也是借鑑了網友的答案才作出來的,特別是英文單詞排序,我發現有好多知識點我不知道,因此作起題目來就感受很困難,以爲之後要多上網多瞭解C語言的知識,加強本身的編程能力,之後作題目纔會駕輕就熟。調試
本身不懂的能夠問對方,兩我的合做作起題目來更容易,也更有幹勁,取他人之長補己之短,能快速加強本身的專業能力,也可以加強本身的溝通交流能力,一箭雙鵰。code