2019春第五周作业
| 這個(gè)作業(yè)屬于哪個(gè)課程 | C語言程序設(shè)計(jì) |
| 這個(gè)作業(yè)的要求在哪里 | (https://edu.cnblogs.com/campus/zswxy/software-engineering-class2-2018/homework/2824) |
| 我在這個(gè)課程的目標(biāo)是 | 了解字符數(shù)組與字符串的區(qū)別,學(xué)習(xí)字符串的輸入輸出格式,預(yù)習(xí)指針 |
| 這個(gè)作業(yè)在哪個(gè)具體方面幫助我實(shí)現(xiàn)目標(biāo) | 讓我了解了字符數(shù)組與字符串的區(qū)別,知道了數(shù)組的復(fù)制方法 |
| 參考文獻(xiàn) | C語言數(shù)組的復(fù)制 |
一.基礎(chǔ)作業(yè)
7-1 英文單詞排序 (25 分)
本題要求編寫程序,輸入若干英文單詞,對(duì)這些單詞按長(zhǎng)度從小到大排序后輸出。如果長(zhǎng)度相同,按照輸入的順序不變。
輸入格式:
輸入為若干英文單詞,每行一個(gè),以#作為輸入結(jié)束標(biāo)志。其中英文單詞總數(shù)不超過20個(gè),英文單詞為長(zhǎng)度小于10的僅由小寫英文字母組成的字符串。
輸出格式:
輸出為排序后的結(jié)果,每個(gè)單詞后面都額外輸出一個(gè)空格。
輸入樣例:
輸出樣例:
red blue green yellow purple1)文件代碼
#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;//將每個(gè)單詞排序 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]);}//關(guān)閉文件if(fclose(fp)){exit(0);} return 0; }2)設(shè)計(jì)思路
3)本題調(diào)試過程中遇到的問題及解決辦法
問題:不知道怎樣計(jì)算每個(gè)單詞的長(zhǎng)度,用getchar()方法輸入太復(fù)雜。
解決辦法:看了網(wǎng)友的代碼,看懂后發(fā)現(xiàn)有好簡(jiǎn)單代碼可以用,如數(shù)組長(zhǎng)度計(jì)算代碼strlen和字符串復(fù)制代碼strcpy,只是自己不知道,搞懂后我用自己的方法做了出來。
4)運(yùn)行結(jié)果
7-1 統(tǒng)計(jì)一行文本的單詞個(gè)數(shù) (15 分)
本題目要求編寫程序統(tǒng)計(jì)一行字符中單詞的個(gè)數(shù)。所謂“單詞”是指連續(xù)不含空格的字符串,各單詞之間用空格分隔,空格數(shù)可以是多個(gè)。
輸入格式:
輸入給出一行字符。
輸出格式:
在一行中輸出單詞個(gè)數(shù)。
輸入樣例:
輸出樣例:
51)程序代碼
#include<stdio.h> int main() {char str[1000];int k=0,q=0;//賦值以'\n'結(jié)尾 //gets 是讀取換行符的,不過它會(huì)把換行符轉(zhuǎn)換為'\0'gets(str);while(str[k]!='\0'){k++;}//該賦值的結(jié)果為str[k]=='\0',所以for循環(huán)判斷i<=k才能將'\0'包括進(jìn)去 for(int i=1;i<=k;i++){//只要前面不是空格,后面是空格就一定有一個(gè)單詞 if(str[i-1]!=' '&&str[i]==' '){q++; }//若'\n'之前不以空格結(jié)尾,則上面的判斷就少加一個(gè)單詞。 if(str[i-1]!=' '&&str[i]=='\0'){q++;}}printf("%d",q);return 0;}2)設(shè)計(jì)思路
3)本題調(diào)試過程中遇到的問題及解決辦法
問題:一開始我也不知道怎么在pta上過不了,總覺得代碼沒有問題。
解決辦法:看了網(wǎng)友的代碼,我跟他們的代碼大同小異,就是定義的數(shù)組空間我的是100,他們的是1000,我改成1000后就過了,看了是我的數(shù)組空間定義小了
4)運(yùn)行結(jié)果
二.預(yù)習(xí)題
1.預(yù)習(xí)的主要內(nèi)容
1.指針變量的定義
2.指針的基本運(yùn)算
3.指針變量的初始化
4.指針和地址
2.完成情況截圖
3.預(yù)習(xí)中存在的疑惑
1.二級(jí)指針**p怎么理解和運(yùn)用
2.指針和函數(shù)參數(shù)的關(guān)系
3.指針不能靈活運(yùn)用,現(xiàn)在感覺指針的用處好像不大。
三.學(xué)習(xí)進(jìn)度條
| 2/25-3/3 | 6h | 30 | 一維數(shù)組的定義和引用及初始化 | 字符數(shù)組和整型數(shù)組的區(qū)別 |
| 3/4-3/10 | 12h | 60 | 指針的定義及運(yùn)用;文件的讀取、寫入, 處理和開關(guān);文件的打開方. | 文件的分類,什么是文本文件, 什么是二進(jìn)制文件;字符數(shù)組的讀取和寫入 |
| 3/11-3/17 | 6h | 30 | 二維數(shù)組的定義及應(yīng)用 | 二維數(shù)組的行和列的嵌套循環(huán)輸入和輸出 |
| 3/18-3/24 | 12h | 60 | 選擇排序法、冒泡排序法和二分查找法 | 不清楚選擇排序法和冒泡排序法的區(qū)別 |
| 3/25-3/31 | 20h | 60 | 字符數(shù)組和字符串的區(qū)別,字符串的輸入輸出方式和格式,二維數(shù)組更高級(jí)的運(yùn)用。 | 不清楚指針在程序中的作用 |
四.學(xué)習(xí)感悟
感覺這次作業(yè)比較難,我也是借鑒了網(wǎng)友的答案才做出來的,特別是英文單詞排序,我發(fā)現(xiàn)有好多知識(shí)點(diǎn)我不知道,所以做起題目來就感覺很困難,覺得以后要多上網(wǎng)多了解C語言的知識(shí),增強(qiáng)自己的編程能力,以后做題目才會(huì)得心應(yīng)手。
五.結(jié)對(duì)編程感想
自己不懂的可以問對(duì)方,兩個(gè)人合作做起題目來更容易,也更有干勁,取他人之長(zhǎng)補(bǔ)己之短,能快速增強(qiáng)自己的專業(yè)能力,也能夠增強(qiáng)自己的溝通交流能力,一舉兩得。
轉(zhuǎn)載于:https://www.cnblogs.com/liu2687479342/p/10623240.html
總結(jié)
以上是生活随笔為你收集整理的2019春第五周作业的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vue-cli 脚手架搭建
- 下一篇: 重写父类中的方法