2019第七週學習總結

2019第七週總結

問題 回答
這個做業屬於哪一個課程 第八章·指針
這個做業要求在哪裏 https://edu.cnblogs.com/campus/zswxy/computer-scienceclass4-2018/homework/2826
我在這個課程的目標是 弄清楚指針與數組之間的關係
這個做業在那個方面幫我實現目標 用指針也能夠處理數組的事情
參考文獻 C語言程序設計

基礎做業

6-2 每一個單詞的最後一個字母改爲大寫 (10 分)

函數fun的功能是:將p所指字符串中每一個單詞的最後一個字母改爲大寫。(這裏的「單詞」是指由空格隔開的字符串)。
函數接口定義:編程

void fun( char *p );

其中 p 是用戶傳入的參數。函數將 p所指字符串中每一個單詞的最後一個字母改爲大寫。
裁判測試程序樣例:數組

#include <stdio.h>
void fun( char *p );
int main()
{
 char chrstr[64];  int d ;
  gets(chrstr);
  d=strlen(chrstr) ;
  chrstr[d] = ' ' ;
  chrstr[d+1] = 0 ;
  fun(chrstr);
  printf("\nAfter changing:   %s\n", chrstr);
return 0;
}

/* 請在這裏填寫答案 */

輸入樣例:

my friend is happy

輸出樣例:

After changing:   mY frienD iS happY

1)實驗代碼

void fun( char *p )
{
  int i;
  for(i=0;p[i+1]!='\0';i++)
     if(p[i+1]==' ')
        p[i]=p[i]-32;
}

2)設計思路

3)遇到的問題


解決:發現段錯誤,問同窗才知道原來是個人字符結尾錯了,不是\n,而是\0;app

4)正確運行截圖

5)心得

這個題目主要考咱們指針與數組的關係,指針是能夠代替數組的函數

7-2 自動售貨機 (30 分)

如圖所示的簡易自動售貨機,物品架一、2上共有10樣商品,按順序進行編號分別爲1-10,標有價格與名稱,一個編號對應一個可操做按鈕,供選擇商品使用。若是物架上的商品被用戶買走,儲物櫃中會自動取出商品送到物架上,保證物品架上必定會有商品。用戶能夠一次投入較多錢幣,並能夠選擇多樣商品,售貨機能夠一次性將商品輸出並找零錢。學習

用戶購買商品的操做方法是:

(1)從「錢幣入口」放入錢幣,依次放入多個硬幣或紙幣。錢幣可支持1元(紙幣、硬幣)、2元(紙幣)、5元(紙幣)、10元(紙幣),放入錢幣時,控制器會先對錢幣進行檢驗識別出幣值,並統計幣值總額,顯示在控制器顯示屏中,提示用戶確認錢幣放入完畢;
(2)用戶確認錢幣放入完畢,即可選擇商品,只要用手指按對應商品外面的編號按鈕便可。每選中同樣商品,售貨機控制器會判斷錢幣是否足夠購買,若是錢幣足夠,自動根據編號將物品進行計數和計算所需錢幣值,並提示餘額。若是錢幣不足,控制器則提示「Insufficient money」。用戶能夠取消購買,將會把全部放入錢幣退回給用戶。測試

輸入格式:

先輸入錢幣值序列,以-1做爲結束,再依次輸入多個購買商品編號,以-1結束。ui

輸出格式:

輸出錢幣總額與找回零錢,以及所購買商品名稱及數量。設計

輸入樣例:

1 1 2 2 5 5 10 10 -1
1 2 3 5 1 6 9 10 -1

輸出樣例:

Total:36yuan,change:19yuan
Table-water:2;Table-water:1;Table-water:1;Milk:1;Beer:1;Oolong-Tea:1;Green-Tea:1;

1)代碼

#include<stdio.h>
#include<string.h>
int main (void)
{
    int money = 0, change = 0, i = 0, sum=0;
    int n, count[11] = {0,0,0,0,0,0,0,0,0,0,0}, price[11]={0,1,1,1,2,2,3,3,3,4,4};
    char a[11][20]={"0","Table-water","Table-water","Table-water","Coca-Cola","Milk","Beer","Oolong-Juice","Sprite","Oolong-Tea","Green-Tea"};

       scanf("%d", &n);
    for(i=1;n!=-1;i++) {
        money=money+n;    
         scanf("%d", &n);
    }
       scanf("%d", &n);
    for(i=1;n!=-1;i++){
         count[n]++;
        scanf("%d", &n);     //統計單個商品的數量
     }
    
    for(i=1;i<11;i++)
         sum+= price[i] * count[i];    //計算購買商品的總價格  
      if(sum < money) {
         printf("Total:%dyuan,change:%dyuan\n", money, money - sum);    
           for(i = 1;i < 11;i++)      
                if(count[i]!= 0)
                    printf("%s:%d;", a[i], count[i]);
}
    else
     {
        printf("Insufficient money");
      }
    return 0;
}

2)設計思路

3)遇到的問題

答案錯誤,發現是在輸出的時候錢少的那種結果也有
解決 ,仔細瀏覽代碼以後,發現是在if輸出後面少了一個括號指針

4)正確截圖

5)心得

說實話,這個題目我不太會,我是參考了別人的代碼才作出來的,我看懂了別人的代碼,我以爲這個題目考的是
咱們對數組的熟練運用,要是對數組很熟這個題目也不是問題了code

預習做業

7-1 使用函數刪除字符串中的字符 (10 分)

輸入一個正整數 repeat (0<repeat<10),作 repeat 次下列運算:
輸入一個字符串 str,再輸入一個字符 c,將字符串 str 中出現的全部字符 c 刪除。
要求定義並調用函數delchar(str,c), 它的功能是將字符串 str 中出現的全部 c 字符刪除,函數形參str的類型是字符指針,形參c的類型是char,函數類型是void。

輸入輸出示例:括號內爲說明,無需輸入輸出

輸入樣例:

3               (repeat=3)
happy new year  (字符串"happy new year")
a               (待刪除的字符'a')
bee             (字符串"bee")
e               (待刪除的字符'e')
111211          (字符串"111211")
1               (待刪除的字符'1')

輸出樣例:

result: hppy new yer    (字符串"happy new year"中的字符'a'都被刪除)
result: b               (字符串"bee"中的字符'e'都被刪除)
result: 2               (字符串"111211"中的字符'1'都被刪除)

1)實驗代碼

#include<stdio.h>
void delchar(char *str,char c);
int main()
{
  int i,repeat;
  char str[100],c;
  scanf("%d\n",&repeat);
   for(i=0;i<repeat;i++){
    gets(str);
    scanf("%c\n",&c);
    printf("result: %s");
    delchar(str,c);
   }
  return 0;
}
void delchar(char *str,char c)
{ 

  while(*str!='\0'){
    if(*str!=c){
      putchar(*str);
    }
    str++;
  }
}

2)設計思路

3)遇到的問題

在輸出時用了%c,以及爲何delchar要在第一個字符下面,

4)解決:輸出的是字符串,因此不能用%c,要用%s,delchar是爲第二個putchar服務的,第一個printf只是輸出結果

正確運行截圖

5)心得

這個題目主要考察對指針類型數組的運用,以及學到一個新函數,putchar單個輸出字符串中的字符,可是用printf也能夠

本週學習進度條

第七週 這周所花時間 代碼行數 學到的內容簡介 目前比較困惑
4/8-4/14 11小時 98 對指針數組的應用 對如何去應用和自定義不是很懂

累計字數和代碼行數

時間 累計字數 累計代碼長度
第一週 126 23
第二週 335 68
第三週 461 105
第四周 584 157
第五週 724 227
第六週 841 283
第七週 1002 391

折線圖

結對編程總結

優勢:

1,若是代碼有問題能夠兩我的找錯誤
       2,兩我的能夠相互督促學習
       3,能夠增進兩我的之間的友誼

缺點

要是兩我的有不一樣的思路,處理很差會鬧矛盾,從而單獨解決
相關文章
相關標籤/搜索