這個作業屬於那個課程 | C語言程序設計Ⅱ |
---|---|
這個作業要求在哪里 | https://edu.cnblogs.com/campus/zswxy/MS/homework/2829 |
我在這個課程的目標是 | 學會使用字符串 |
這個作業在哪個具體方面幫助我實現目標 | 英文單詞排序 |
參考文獻 | 《C語言程序設計》,百度 |
此為第四周預習題
7-1 統計一行文本的單詞個數 (15 分)
本題目要求編寫程序統計一行字符中單詞的個數。所謂“單詞”是指連續不含空格的字符串,各單詞之間用空格分隔,空格數可以是多個。
輸入格式:
輸入給出一行字符。
輸出格式:
在一行中輸出單詞個數。
輸入樣例:
Let's go to room 209.
輸出樣例:
5
1.實驗代碼
#include<stdio.h>
int main(void)
{
int i, num=0, flag=0;
char a[10000];
gets(a);
for(i=0;a[i]!='\0';i++)
{
if(a[i]==' ')
flag=0;
else if(flag==0)
{
flag=1;
num++;
}
}
printf("%d\n",num);
return 0;
}
2.設計思路
3.遇到的問題及解決辦法
問題:
在使用for循環時,卡了一下,我改如何輸入循環條件
解決辦法:
百度了一下,發現有很多辦法可以解決
例如截圖:
4.運行結果截圖
預習題
1.指針
2.完成情況截圖
2.預習中存在的疑惑
fun()函數的使用;
7-1 英文單詞排序 (25 分)
本題要求編寫程序,輸入若干英文單詞,對這些單詞按長度從小到大排序后輸出。如果長度相同,按照輸入的順序不變。
輸入格式:
輸入為若干英文單詞,每行一個,以#作為輸入結束標志。其中英文單詞總數不超過20個,英文單詞為長度小於10的僅由小寫英文字母組成的字符串。
輸出格式:
輸出為排序后的結果,每個單詞后面都額外輸出一個空格。
輸入樣例:
blue
red
yellow
green
purple
#
輸出樣例:
red blue green yellow purple
1.實驗代碼
#include<stdio.h>
#include <string.h>
int main(void)
{
FILE * fp=fopen("C:\\Users\\muxi1\\Desktop\\pta\\lucy 7+37=44.txt","a+");
char str[21][10], len[10], a[20];
int n=0, i, j, count=0;
for(i=0;i<20;i++)
{
fscanf(fp,"%s", &a);
if(a[0]==',') //當遇到#時跳出循環
{
break;
}
else
{
strcpy(str[n], a); //strcpy拷貝整個函數
n++;
}
}
for(i=0;i<n-1;i++)
for(j=0;j<n-i-1;j++)
{
if(strlen(str[j])>strlen(str[j+1])) //使用strlen函數統計字符串的長度 ,比較他們的長度
{
strcpy(len,str[j]);
strcpy(str[j],str[j+1]);
strcpy(str[j+1],len);
}
}
for(i=0;i<n;i++)
{
fprintf(fp,"%s ", str[i]);
}
fclose(fp);
}
2.設計思路
3.實驗過程中所遇到的問題及解決辦法
無
4.運行結果截圖
更改后
關於挑戰題
是真的不會寫
學習感悟包括:
(1)初步學習了python
(2)函數的調用,記不太清,使用的時候還要去翻書
python的學習我還是個菜鳥
關於結隊
總的來說結隊還是有用的
優點:1.可以促進自己的表達能力
2.有個隊友可以起到相互幫助作用
3.兩個人可以一起 更好的學習百度,可以更加全面了了解
例如:有些問題自己忽略掉了,但是隊友可以發現一些問題,這樣就能使問題更好的及時的解決
缺點:兩個人思路不同,有的時候有點麻煩
學習進度條
周/日期 | 這周所花的時間 | 代碼行數 | 學到的知識點簡介 | 目前比較迷惑的問題 |
---|---|---|---|---|
2/27-3/7 | 4h | 220 | 文件 | 這次作業沒有 |
3/8-3/14 | 4h | 230 | 二維數組 | 感覺還好,就是學習指針后面還是有點蒙 |
3/15-3/24 | 8h | 250 | 數組,冒泡排序法和選擇法排序 | 指針 |
3/24-3/29 | 5h | 180 | 字符串 | 函數的使用 |
博客字數和代碼函行數