c语言设计函数删除大写字母,C语言第七周作业
每個單詞的最后一個字母改成大寫
函數fun的功能是:將p所指字符串中每個單詞的最后一個字母改成大寫。(這里的“單詞”是指由空格隔開的字符串)。
函數接口定義:
void fun( char *p );
其中 p 是用戶傳入的參數。函數將 p所指字符串中每個單詞的最后一個字母改成大寫。
裁判測試程序樣例:
include
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("
After changing: %s
", chrstr);
return 0;
}
/* 請在這里填寫答案 /
輸入樣例:
Cmy friend is happy
輸出樣例:
CAfter changing: mY frienD iS happy
1.實驗代碼
void fun(char p)
{
for(;p!=' ';p++)
{
if(p!=' '&&*(p+1)==' ')
p=p-32;
}
}
2.流程圖
3.遇到的問題和解決方法
問題:自己參考了教材上的一個題目,有很多相似的地方,但還是出現了一些錯誤。
解決方法:自己仔細思考解決問題。
4.運行截圖
自動售貨機
如圖所示的簡易自動售貨機,物品架1、2上共有10樣商品,按順序進行編號分別為1-10,標有價格與名稱,一個編號對應一個可操作按鈕,供選擇商品使用。如果物架上的商品被用戶買走,儲物柜中會自動取出商品送到物架上,保證物品架上一定會有商品。用戶可以一次投入較多錢幣,并可以選擇多樣商品,售貨機可以一次性將商品輸出并找零錢。
用戶購買商品的操作方法是:
(1)從“錢幣入口”放入錢幣,依次放入多個硬幣或紙幣。錢幣可支持1元(紙幣、硬幣)、2元(紙幣)、5元(紙幣)、10元(紙幣),放入錢幣時,控制器會先對錢幣進行檢驗識別出幣值,并統計幣值總額,顯示在控制器顯示屏中,提示用戶確認錢幣放入完畢;
(2)用戶確認錢幣放入完畢,便可選擇商品,只要用手指按對應商品外面的編號按鈕即可。每選中一樣商品,售貨機控制器會判斷錢幣是否足夠購買,如果錢幣足夠,自動根據編號將物品進行計數和計算所需錢幣值,并提示余額。如果錢幣不足,控制器則提示“Insufficient money”。用戶可以取消購買,將會把所有放入錢幣退回給用戶。
輸入格式:
先輸入錢幣值序列,以-1作為結束,再依次輸入多個購買商品編號,以-1結束。
輸出格式:
輸出錢幣總額與找回零錢,以及所購買商品名稱及數量。
輸入樣例:
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.實驗代碼
int main(void)
{
char a[10][20] = {"Table-water","Table-water","Table-water","Coca-Cola","Milk","Beer","Orange-Juice","Sprite","Oolong-Tea","Green-Tea"};
int b[11] = {0,0,0,0,0,0,0,0,0,0,0};
int c[50];
int i=1, k, sum = 0, money, SUM = 0, change, flag=0;
scanf("%d",&money);//輸入幣值并計算總幣值
while((money!=-1)&&(money <= 10))
{
sum = sum + money;
scanf("%d",&money);
}
scanf("%d",&c[i]);
while(c[i]!=-1)//將選的貨物編號存儲到數組c中并計算找零
{
switch(c[i])
{
case 1: case 2: case 3: SUM = SUM + 1;break;
case 4: case 5: SUM = SUM + 2;break;
case 6: case 7: case 8: SUM = SUM + 3;break;
case 9: case 10: SUM = SUM + 4;break;
default:break;
}
if(SUM>sum)
{
printf("Insufficient money");
flag = 1;
break;
}
i++;
scanf("%d",&c[i]);
}
change = sum-SUM;
//用數組b統計各種商品數量
i = 1;
while(c[i]!=-1)
{
switch(c[i])
{
case 1: b[1]++;break;
case 2: b[2]++;break;
case 3: b[3]++;break;
case 4: b[4]++;break;
case 5: b[5]++;break;
case 6: b[6]++;break;
case 7: b[7]++;break;
case 8: b[8]++;break;
case 9: b[9]++;break;
case 10: b[10]++;break;
default:break;
}
i++;
}
//輸出結果
if(flag==0)
{
printf("Total:%dyuan,change:%dyuan
",sum, change);
for(i=1; i<=10; i++)
{
if(b[i]==0)
continue;
else
{
printf("%s:%d;",a[i-1],b[i]);
}
}
}
return 0;
}
2.設計思路
3.遇到的問題和解決方法
問題:對題目進行了仔細分析,有多種情況需要考慮,采用了swith語句時考慮問題還有欠缺,出現了編譯錯誤。
4.運行結果截圖
使用函數刪除字符串中的字符
輸入一個正整數 repeat (0
輸入一個字符串 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.實驗代碼
void delchar(char *str, char c);
int main(void)
{
int repeat,i;
char str[100],c;
scanf("%d
",&repeat);
for(i=1;i<=repeat;i++){
gets(str);
c=getchar();
delchar(str,c);
printf("result: %s
",str);
}
return 0;
}
void delchar(char *str, char c)
{
int j,k=0;
for(j=0;str[j]!=' ';j++){
if(str[j]!=c){
str[k]=str[j];
k++;
}
}
str[k]=' ';
}
2.設計思路
3.遇到的問題和解決方法
問題:自己對題目進行了簡化分析,結果出現答案錯誤
解決方法:向班上的同學請教,自己再仔細思考
4.運行結果截圖
預習中存在的問題:感覺自己對數組和指針還不是很了解,需要加強練習。
學習進度條
心得
感覺自己還存在一些問題,每次無論題目是簡單還是困難都需要花費很長的時間,希望自己以后能多練習加強對知識點的理解。
結對編程:感覺我們兩個都做得還不夠好,希望在接下來的時間能相互學習,共同進步。
總結
以上是生活随笔為你收集整理的c语言设计函数删除大写字母,C语言第七周作业的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 编译原理第三章 词法分析与有穷自动机
- 下一篇: web作业之期末工程 “耀炎食品网站”