作业——8
| 這個作業(yè)屬于哪個課程 | C語言程序設(shè)計Ⅱ |
| 這個作業(yè)的要求在哪里 | C語言作業(yè)評價標準 |
| 我在這個課程的目標是 | 指針與字符串 |
| 這個作業(yè)在哪個具體方面幫助我實現(xiàn)目標 | 使用指針與字符串 |
| 參考文獻 | 指針和字符串(基礎(chǔ)知識) |
第七周作業(yè)
一
1 、使用函數(shù)刪除字符串中的字符
輸入一個正整數(shù) repeat (0<repeat<10),做 repeat 次下列運算:
輸入一個字符串 str個字符 c,字符串str中出現(xiàn)的所有字符 c 刪除。
要求定義并調(diào)用函數(shù)delchar(str,c), 它的功能是將字符串str中出現(xiàn)的所有 c 字符刪除,函數(shù)形參str的類型是字符指針,形參c的類型是char,函數(shù)類型是void。
輸入輸出示例:括號內(nèi)為說明,無需輸入輸出
輸入樣例:
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'都被刪除)實驗代碼
#include<stdio.h> void delchar(char *str,char c); int main (void) {char str[1000];char n, c;int repeat,i; scanf("%d",&repeat);for(i=0;i<repeat;i++){n=getchar(); gets(str); c=getchar();printf("result: ");delchar(str,c); }return 0; }void delchar(char *str,char c) {int i;for(i=0;*(str+i)!='\0';i++){ if(*(str+i)!=c) printf("%c",*(str+i));}printf("\n"); }設(shè)計思路
本題調(diào)試過程碰到問題及解決方法
...
運行結(jié)果截圖
2 、每個單詞的最后一個字母改成大寫
函數(shù)fun的功能是:將p所指字符串中每個單詞的最后一個字母改成大寫。(這里的“單詞”是指由空格隔開的字符串)。
輸入格式:
輸入有兩行: 第一行是n值; 第二行是n個數(shù)。
函數(shù)接口定義:
void fun( char *p );其中 p 是用戶傳入的參數(shù)。函數(shù)將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實驗代碼
void fun( char *p ){int i;for(i=0;*(p+i)!='\0';i++){ if(*(p+i+1)==' ')*(p+i)=*(p+i)-'a'+'A'; } }設(shè)計思路
本題調(diào)試過程碰到問題及解決方法
無。
運行結(jié)果截圖
3 、自動售貨機
如圖所示的簡易自動售貨機,物品架1、2上共有10樣商品,按順序進行編號分別為1-10,標有價格與名稱,一個編號對應(yīng)一個可操作按鈕,供選擇商品使用。如果物架上的商品被用戶買走,儲物柜中會自動取出商品送到物架上,保證物品架上一定會有商品。用戶可以一次投入較多錢幣,并可以選擇多樣商品,售貨機可以一次性將商品輸出并找零錢。
用戶購買商品的操作方法是:
(1)從“錢幣入口”放入錢幣,依次放入多個硬幣或紙幣。錢幣可支持1元(紙幣、硬幣)、2元(紙幣)、5元(紙幣)、10元(紙幣),放入錢幣時,控制器會先對錢幣進行檢驗識別出幣值,并統(tǒng)計幣值總額,顯示在控制器顯示屏中,提示用戶確認錢幣放入完畢;
(2)用戶確認錢幣放入完畢,便可選擇商品,只要用手指按對應(yīng)商品外面的編號按鈕即可。每選中一樣商品,售貨機控制器會判斷錢幣是否足夠購買,如果錢幣足夠,自動根據(jù)編號將物品進行計數(shù)和計算所需錢幣值,并提示余額。如果錢幣不足,控制器則提示“Insufficient money”。用戶可以取消購買,將會把所有放入錢幣退回給用戶。
輸入格式:
- 先輸入錢幣值序列,以-1作為結(jié)束,再依次輸入多個購買商品編號,以-1結(jié)束。
輸出格式:
- 輸出錢幣總額與找回零錢,以及所購買商品名稱及數(shù)量。
輸入樣例:
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;實驗代碼
#include<stdio.h> #include<string.h> int main(void) {int n, t=0, total=0, sum;int i,j,count=0;while(n!=-1){scanf("%d",&n);if(n!=-1)total=total+n;}int b[100]={0};int price,cost=0;char a[10][20]={"Table-water","Table-water","Table-water","Coca-Cola","Milk","Beer","Oringe-Juice","Sprite","Oolong-Tea","Green-Tea"};while(b[t-1]!=-1){scanf("%d",&b[t]);t++;}for(t=0;b[t]!=-1;t++){switch(b[t]){case 1:price=1;break;case 2:price=1;break;case 3:price=1;break;case 4:price=2;break;case 5:price=2;break;case 6:price=3;break;case 7:price=3;break;case 8:price=3;break;case 9:price=4;break;case 10:price=4;break;}cost=cost+price;}if(cost<=total){printf("Total:%dyuan,change:%dyuan\n", total, total-cost);sum=t-1; for(i=0;i<=10;i++){count=0;for(j=0;j<=sum;j++){if(i==b[j]){count++;}}if(count!=0){printf("%s:%d;",a[i-1],count);}}}else{printf("Insufficient money");}return 0; }設(shè)計思路
- 將各個商品存入數(shù)組中
用循環(huán)求出總錢數(shù)total
計算需要買的商品的價錢
判斷輸入的錢夠不夠
然后作比較分別輸出結(jié)果
本題調(diào)試過程碰到問題及解決方法
...
運行結(jié)果截圖
預習的主要內(nèi)容
- 1 、字符串的表示形式
2 、字符指針作函數(shù)參數(shù)
二、學習進度條
| 周/日期 | 這周所花的時間 | 代碼行 | 學到的知識點簡介 | 目前比較迷惑的問題 |
| 第二周 | 4 hours | 35 | 用c語言程序讀取電腦中的文本文件并對其進行基礎(chǔ)操作 | ... |
| 第三周 | 4 hours | 69 | 初步使用二維數(shù)組,如何寫入一個矩陣 | ... |
| 第四周 | 5 hours | 102 | 認識了選擇排序法、二分查找法和冒泡排序法以及在二維數(shù)組的定義、引用、初始化和其矩陣。 | ... |
| 第五周 | 5 hours | 98 | 用到二維數(shù)組,初用頭文件<string.h>中的strlen函數(shù)和strcpy函數(shù) | ... |
| 第六周 | 5 hours | 96 | 了解了變量、內(nèi)存單元和地址之間的關(guān)系;了解了如何定義指針變量,怎樣使用指針變量,怎樣進行指針變量的初始化;了解了指針變量的基本運算;了解了指針作為函數(shù)參數(shù)的作用;了解了如何使用指針實現(xiàn)函數(shù)調(diào)用返回多個值。 | ... |
| 第七周 | 5 hours | 130 | 更加了解了如何使用指針與字符串 | ... |
三、學習折線圖
四、學習感悟&結(jié)對編程
- 多用的是以前的方法和語句,相比助教的看起來更加多累贅,原因就是對指針和字符串還沒運用的那么熟練吧。對于結(jié)對編程,我還是沒有和別人結(jié)對編程,還是和以前一樣有遇到問題就問室友或者同學來解決,因為時間安排問題和需要結(jié)對編程的同學無法同步。
轉(zhuǎn)載于:https://www.cnblogs.com/s-su/p/10687399.html
總結(jié)
- 上一篇: 华夏信用卡电话怎么转人工服务?客服时间是
- 下一篇: 统计词频问题