第七周作业及其总结
第七周作業(yè)
一、本周作業(yè)頭
| 這個(gè)作業(yè)要求在哪里 | https://edu.cnblogs.com/campus/zswxy/computer-scienceclass1-2018/homework/2828 | |
| 我在這個(gè)課程的目標(biāo)是 | 更加熟練的運(yùn)用指針定義函數(shù)和調(diào)用函數(shù)delchar | |
| 這個(gè)作業(yè)在那個(gè)具體方面幫助我實(shí)現(xiàn)目標(biāo) | 如何來(lái)是讓自動(dòng)售貨機(jī)找錢 | |
| 參考文獻(xiàn) | c語(yǔ)言教課書(shū)和百度 |
二、基礎(chǔ)作業(yè)
7-1 使用函數(shù)刪除字符串中的字符 (10 分)
輸入一個(gè)正整數(shù) repeat (0<repeat<10),做 repeat 次下列運(yùn)算:
輸入一個(gè)字符串 str,再輸入一個(gè)字符 c,將字符串 str 中出現(xiàn)的所有字符 c 刪除。
要求定義并調(diào)用函數(shù)delchar(str,c), 它的功能是將字符串 str 中出現(xiàn)的所有 c 字符刪除,函數(shù)形參str的類型是字符指針,形參c的類型是char,函數(shù)類型是void。
輸入輸出示例:括號(hào)內(nèi)為說(shuō)明,無(wú)需輸入輸出。
輸入樣例:
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'都被刪除)
一、實(shí)驗(yàn)代碼。
#include<stdio.h> void delchar(char str[],char c); int main() {int repeat;char str[80],c;scanf("%d\n",&repeat);while(repeat--) {gets(str);scanf("%c",&c);printf("result: ");delchar(str,c);}return 0; }void delchar(char str[],char c) {while(*str!='\0'){if(*str!=c) {putchar(*str);}str++; } }二、設(shè)計(jì)思路既流程圖。
三、本題調(diào)試過(guò)程遇到的問(wèn)題及解決辦法。
1、在調(diào)試過(guò)程中答案總出錯(cuò)誤不知道為什么?
解決辦法:詢問(wèn)了助教之后才發(fā)現(xiàn)在第一個(gè)while語(yǔ)句中應(yīng)該把str字符串全都儲(chǔ)存起來(lái),也就是輸入gets(str)。
2、基礎(chǔ)題。
6-2 每個(gè)單詞的最后一個(gè)字母改成大寫 (10 分)
函數(shù)fun的功能是:將p所指字符串中每個(gè)單詞的最后一個(gè)字母改成大寫。(這里的“單詞”是指由空格隔開(kāi)的字符串)。
函數(shù)接口定義:
void fun( char *p );
其中 p 是用戶傳入的參數(shù)。函數(shù)將p所指字符串中每個(gè)單詞的最后一個(gè)字母改成大寫。
裁判測(cè)試程序樣例:
#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; }/* 請(qǐng)?jiān)谶@里填寫答案 */輸入樣例:
my friend is happy
輸出樣例:
After changing: mY frienD iS happY
一、實(shí)驗(yàn)代碼。
void fun( char *p ) {int i;for (i=0;*(p+i)!='0';i++){if (*(p+i)==' '){*(p+i-1)-=32;}} }二、設(shè)計(jì)思路既流程圖。
三、本題調(diào)試過(guò)程中遇到的問(wèn)題及解決辦法。
1、之前出現(xiàn)了編譯錯(cuò)誤和答案錯(cuò)誤?
解決辦法:詢問(wèn)了其他同學(xué),第一自己在等號(hào)左右不應(yīng)該空格,第二在for語(yǔ)句輸出終止語(yǔ)句應(yīng)該是(p+i)!='0'而不是(p+i)!='\0'.
7-2 自動(dòng)售貨機(jī) (30 分)
如圖所示的簡(jiǎn)易自動(dòng)售貨機(jī),物品架1、2上共有10樣商品,按順序進(jìn)行編號(hào)分別為1-10,標(biāo)有價(jià)格與名稱,一個(gè)編號(hào)對(duì)應(yīng)一個(gè)可操作按鈕,供選擇商品使用。如果物架上的商品被用戶買走,儲(chǔ)物柜中會(huì)自動(dòng)取出商品送到物架上,保證物品架上一定會(huì)有商品。用戶可以一次投入較多錢幣,并可以選擇多樣商品,售貨機(jī)可以一次性將商品輸出并找零錢。
用戶購(gòu)買商品的操作方法是:
(1)從“錢幣入口”放入錢幣,依次放入多個(gè)硬幣或紙幣。錢幣可支持1元(紙幣、硬幣)、2元(紙幣)、5元(紙幣)、10元(紙幣),放入錢幣時(shí),控制器會(huì)先對(duì)錢幣進(jìn)行檢驗(yàn)識(shí)別出幣值,并統(tǒng)計(jì)幣值總額,顯示在控制器顯示屏中,提示用戶確認(rèn)錢幣放入完畢;
(2)用戶確認(rèn)錢幣放入完畢,便可選擇商品,只要用手指按對(duì)應(yīng)商品外面的編號(hào)按鈕即可。每選中一樣商品,售貨機(jī)控制器會(huì)判斷錢幣是否足夠購(gòu)買,如果錢幣足夠,自動(dòng)根據(jù)編號(hào)將物品進(jìn)行計(jì)數(shù)和計(jì)算所需錢幣值,并提示余額。如果錢幣不足,控制器則提示“Insufficient money”。用戶可以取消購(gòu)買,將會(huì)把所有放入錢幣退回給用戶。
輸入格式:
先輸入錢幣值序列,以-1作為結(jié)束,再依次輸入多個(gè)購(gòu)買商品編號(hào),以-1結(jié)束。
輸出格式:
輸出錢幣總額與找回零錢,以及所購(gòu)買商品名稱及數(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;
一、實(shí)驗(yàn)代碼。
#include<stdio.h> #include<string.h> int main (void) {int n, i=0, money=0, change=0, sum=0;int a[11]={0}, b[11]={0,1,1,1,2,2,3,3,3,4,4};char c[11][20]={"","Table-water","Table-water","Table-water","Coca-Cola","Milk","Beer","Oolong-Juice","Sprite","Oolong-Tea","Green-Tea"};while(1) {scanf("%d", &n);if(n == -1)break;money += n;} while(1){scanf("%d", &n);if(n == -1)break;a[n]++; //用于統(tǒng)計(jì)各個(gè)商品的數(shù)量}for(i = 1;i < 11;i++){change +=b[i] * a[i];//計(jì)算價(jià)格}if(change > money)//判斷錢是否足夠{printf("Insufficient money");return 0;}printf("Total:%dyuan,change:%dyuan\n", money, money - change);//輸出價(jià)格for(i = 1;i < 11;i++)//輸出商品購(gòu)買的數(shù)量{if(a[i] != 0){printf("%s:%d;", c[i], a[i]);}}return 0; }二、設(shè)計(jì)思路既流程圖。
三、本題調(diào)試過(guò)程中所遇到的問(wèn)題及解決辦法。
1、一直出現(xiàn)段錯(cuò)誤不知道只能回事?
解決辦法:去請(qǐng)教了助教,最后把for語(yǔ)句全換成while語(yǔ)句解決了問(wèn)題。
學(xué)習(xí)進(jìn)度統(tǒng)計(jì)和學(xué)習(xí)感悟
折線圖
我已經(jīng)盡力了畫折線圖
學(xué)習(xí)感悟
1、學(xué)習(xí)內(nèi)容
學(xué)習(xí)了fun函數(shù)的運(yùn)用,和用while語(yǔ)句與指針變量結(jié)合運(yùn)用解決問(wèn)題,加深了自己對(duì)數(shù)組的運(yùn)用。
結(jié)對(duì)編程
優(yōu)點(diǎn):
1、程序員互相幫助,互相教對(duì)方,可以得到能力上的互補(bǔ)。
2、可以讓編程環(huán)境有效地貫徹Design。
缺點(diǎn):
1、兩個(gè)人在一起工作可能會(huì)出現(xiàn)工作精力不能集中的情況。程序員可能會(huì)交談一些與工作無(wú)關(guān)的事情,反而分散注意力,導(dǎo)致效率比單人更為低下。
2、結(jié)對(duì)編程可能讓程序員們相互學(xué)習(xí)得更快。有些時(shí)候,學(xué)習(xí)對(duì)方的長(zhǎng)外,可能會(huì)和程序員們?cè)谄鹱躺涣細(xì)夥找粯涌臁1热?#xff0c;合伙應(yīng)付工作,敷衍項(xiàng)目。
其實(shí)我覺(jué)得結(jié)對(duì)編程并沒(méi)有發(fā)揮很大的作用,該不會(huì)的還是不會(huì),然后只有問(wèn)助教或則自己百度。
轉(zhuǎn)載于:https://www.cnblogs.com/neir/p/10697826.html
總結(jié)
- 上一篇: Debian下Cannot set LC
- 下一篇: ?类型 ,?类型(值)