2019春第五週做業

這個做業屬於哪一個課程 C語言程序設計II
這個做業要求在哪裏 2019年春季學期第五週做業
我在這個課程的目標是 我但願可以經過學習C語言的知識,編寫程序
這個做業在哪一個具體方面幫助我實現目標 這個做業讓我知道了字符串的基本概念及使用方法,理解了字符串與一維字符數組的區別、字符串的存儲以及字符串的操做方法。明白瞭如何正確使用字符串進行程序設計。
參考文獻 字符串 菜鳥教程C 標準庫 - <string.h> 《C語言程序設計》指針

1、本週完成的做業

題目1. 第四周預習題

本題目要求編寫程序統計一行字符中單詞的個數。所謂「單詞」是指連續不含空格的字符串,各單詞之間用空格分隔,空格數能夠是多個。html

輸入格式:
輸入給出一行字符。編程

輸出格式:
在一行中輸出單詞個數。數組

輸入樣例:ide

Let's go to room 209.

輸出樣例:學習

5

1).實驗代碼

#include<stdio.h>
#include<string.h>

int main(void)
{
  int i, count, len;
  char ch[1000];
  
  gets(ch); 
  
  len = strlen(ch);
  
  if(ch [0] == ' ')
    count = 0;
  else
    count = 1;
    
  for(i = 0;i < len - 1;i ++)
  {
    if(ch [i] == ' ' && ch [i+1] != ' ')
    count ++;
  }
  printf("%d", count);
  
  return 0;
}

2). 設計思路

3).本題調試過程碰到問題及解決辦法

遇到的問題:由測試點提示的錯誤信息就能夠得出,字符串的長度不夠
解決的辦法:該題老師上課以給咱們看過了代碼與流程圖,按老師方法能夠很流暢的寫出來,可是我想嘗試一下是否能夠把 字符串長度設小一點節省內存空間,結果發現100仍是過小了不行。

4).運行結果截圖

題目2. 第五週做業—基礎

7-1 英文單詞排序 (25 分)
本題要求編寫程序,輸入若干英文單詞,對這些單詞按長度從小到大排序後輸出。若是長度相同,按照輸入的順序不變。測試

輸入格式:
輸入爲若干英文單詞,每行一個,以#做爲輸入結束標誌。其中英文單詞總數不超過20個,英文單詞爲長度小於10的僅由小寫英文字母組成的字符串。設計

輸出格式:
輸出爲排序後的結果,每一個單詞後面都額外輸出一個空格。3d

輸入樣例:指針

blue
red
yellow
green
purple
#

輸出樣例:調試

red blue green yellow purple

新增要求:
基礎做業
PTA:英文單詞排序
要求:
1.在PTA上完成做業
2.博客總結須要將PTA上代碼作如下修改:(1)經過以本身名字命名的文件輸入英文單詞,(2)英文單詞輸入的結束標記爲你學號最後一位數+37所對應的ASCII字符。(例如:你的學號最後一位爲9,則結束標記爲9+37=46所對應的ASCII字符「.」)(3)在不刪除原有內容的狀況下,將排序後的單詞輸出到文件。

1).實驗代碼

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

int main(void)
{
  FILE * fp = fopen("C:\\Users\\LILI\\Desktop\\LX\\lixuan.txt", "a+");
  
  int i=0, j, k;
  char  zf[21][11];
  
  while(1)
  {
    fscanf(fp,"%s", &zf[i]);

    if(zf[i][0] == ',')
        break;
        i++;
  }
  
  fprintf(fp,"\n") ;
  for(j = 1;j <= 10;j ++)
  {
    for(k = 0;k < i;k++)
    {
        if(strlen(zf[k]) == j)
         fprintf(fp,"%s ", zf[k]);
    
      }
  }
   fclose(fp);
   
   return 0;
}

2). 設計思路

3).本題調試過程碰到問題及解決辦法

遇到的問題:答案錯誤,空集正確是由於什麼都沒有輸出就是空集,因此應該是輸出的地方有問題
解決的辦法:搭檔看出了我雙循環的判斷時邏輯有錯誤,應該將判斷字符長度放在循環裏。

4).運行結果截圖

題目3.第五週做業—預習

1).預習的主要內容

指針:
1.什麼是指針
2.什麼是指針變量,而且如何定義,和給其賦值
3.如何引用指針變量

2).完成狀況截圖



3).預習中存在的疑惑

1. 2-3:指針能夠直接存儲一個須要輸出的數嗎?
2.指針的具體使用還有哪些?

題目4. 挑戰做業:

繼續挑戰第二週的挑戰做業:返回整數數組中最大子數組的和,本週,咱們要求二維數組的子數組必須是矩形的。
具體要求參看鄒欣老師博客 現代程序設計做業2

1). 設計思路

第一步 輸入二維數組
第二步 循環進行相鄰幾行幾列相加進行比較大小
第三步 再循環比較大小的同時也不斷將最大的幾行幾列的地址存儲在另外一個數組中
第四步 輸出最大矩形子數組的和

2、學習進度條

周/日期 這周所花的時間 代碼行數 學到的知識點簡介 目前比較迷惑的問題
3/2-3/8 20h 300行 數組,指針的大體意義,文件入門 數組串的使用,指針
3/9-3/15 25h 400行 二維數組,文件與數組的結合運用 雙for循環的流程圖(再不上課,光自學感受太艱難了)
3/16-3/22 22h 450行 一維數組,二維數組,幾種數組排序法 字符串使用
3/23-3/29 20h 350行 字符串的定義及其使用 指針的具體使用

3、學習感悟

心得:

(1) 學習內容:
1. 字符串與一維字符數組的區別
2. 字符串的存儲以及字符串的操做方法
收穫:自從上週本身徹底靠本身的思路寫出了一個程序後,發現本身比上個學期懵懵懂懂編程的狀態好多了,如今比較可以明確的知道本身的思路,也能夠更快的找出一些錯誤。本週學會了字符串及其的使用。
(2) 難點:挑戰題太難了,其中的子數組的範圍究竟是指什麼。

解決的方法:自行百度了一下,但仍是沒有徹底理解其意思。

4、結對編程

1.結對編程過程

有了上次結對編程後的磨合,懂得告終對編程應該怎樣進行,本週除了挑戰題,做業難度都不是特別大,預習題本身獨立完成,基礎題由我先說出本身思路,搭檔修改個人思路並提供新思路引導我完成。

2.結對編程的優缺點

優勢:1.在編程時有了更多探討的過程,而不是一我的死鑽
2.爲編程提供了更多的解答思路
3.在代碼出錯而怎麼都找不到錯誤時不會一我的自我崩潰,而是有我的會幫你一塊兒找出問題
缺點:可以面對面結對的時間太少了。

完成做業的消耗時間:12h

相關文章
相關標籤/搜索