c语言设计函数删除大写字母,C语言第七周作业

af82dfd0f4351833d0a19bfde2b20de1.png

每个单词的最后一个字母改成大写

函数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.流程图

24f647dafabca1f1fd00054fa9f57f88.png

3.遇到的问题和解决方法

问题:自己参考了教材上的一个题目,有很多相似的地方,但还是出现了一些错误。

解决方法:自己仔细思考解决问题。

4917739e9514edc7e9f147ca973d5d50.png

4.运行截图

bf9f0ba68eeecdcd8cf1da6d8a657e0a.png

自动售货机

如图所示的简易自动售货机,物品架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.设计思路

db4e04a024dea2961e875299c6263aa6.png

3.遇到的问题和解决方法

问题:对题目进行了仔细分析,有多种情况需要考虑,采用了swith语句时考虑问题还有欠缺,出现了编译错误。

6e2d83f1350d28a0a9b309c447644f6a.png

4.运行结果截图

3830219d1de52a68096490ae6eae7aed.png

使用函数删除字符串中的字符

输入一个正整数 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.设计思路

a72bccf583c0d3cca072fd0297c6e088.png

3.遇到的问题和解决方法

问题:自己对题目进行了简化分析,结果出现答案错误

解决方法:向班上的同学请教,自己再仔细思考

b7d1eb31e6ad466f4caad3504aff1b40.png

4.运行结果截图

8a47a9a4cebcb43f883ea8faecfce8b3.png

预习中存在的问题:感觉自己对数组和指针还不是很了解,需要加强练习。

学习进度条

1fba83a842b108caf3d18fb08ae72c77.png

dd07694d2e2d1ce8b5c3f6490061589e.png

心得

感觉自己还存在一些问题,每次无论题目是简单还是困难都需要花费很长的时间,希望自己以后能多练习加强对知识点的理解。

结对编程:感觉我们两个都做得还不够好,希望在接下来的时间能相互学习,共同进步。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 这是一个关于自动售货机的问题,如图所示的简易自动售货机,物品共有10样商品,按顺序进行编号分别为1-10,标有价格与名称,一个编号对应一个可操作按钮,供选择商品使用。如果物架上的商品被用户购买走,可以选择商品使用。如果物架上的商品被用户购买走,可以选择补充商品,以维持产品供应。 ### 回答2: 自动售货机是一种应用智能技术的自动化工具,它能够为用户提供方便快捷的购物体验。这种自动售货机通常都放置在人流量较大的场所,如商场、车站、机场等,为人们提供各种日常用品和零食饮料等商品。 在这个简易自动售货机,有两个物品架分别编号为1和2,共有10种不同的商品放置在上面,同时标有名称和价格。这些商品的编号对应着售货机上的可操作按钮,当用户想购买某一种商品时,只需要按下对应的按钮即可。购买成功后,商品便自动地从售货机落下来,给用户带来了极大的方便。 但是,如果物品架上的商品被用户购买一空,售货机便需要及时进行补货,在补货过程,售货机需要进行一系列的操作,包括开门、加货、关闭门等。这些操作通常都是由售货机内部的智能系统自动完成的,可以保证售货机能够在最短时间内完成补货工作,以便为下一个顾客提供商品。 除了补货之外,售货机还需要进行清洁和维护,这能够有效地保障其长久的使用寿命。清洁和维护包括清理售货机内部的垃圾、保养售货机的零部件和电子设备等。只有这样,售货机才能够长久地为人们提供便利的服务。 总之,自动售货机作为现代化的购物工具,为人们的购物带来了很大的方便,通过其内部的智能系统和自动化的运作,实现了快速、方便和高效的购物方式,成为人们生活不可缺少的一部分。 ### 回答3: 自动售货机是一种自动化销售设备,能够实现自助购物。自动售货机体积小巧,操作便捷,适用于公共场所和商业区,方便消费者购买零食、饮料、烟草、报纸等商品。 如图所示的简易自动售货机,共有10种商品,每种商品都标有价格和编号,消费者只需按下相应编号对应的按钮,即可选择商品。如果该商品还有库存,自动售货机将会发出提示音,消费者需要投入相应的货币才能购买商品。如果投入的货币数量不足,自动售货机也会发出提示音,消费者可以继续投币或者选择其他商品。 如果物架上的商品被用户买走,自动售货机将会自动更新库存,并显示出售数量和库存容量。如果某种商品售完,自动售货机会自动停止销售该商品,直到补充库存为止。 自动售货机的使用方便,可以节省购物时间,同时节约人力成本。然而,因为自动售货机没有人工监管,容易出现货物缺货、硬币找零等问题,需要经常维护和监管。此外,自动售货机也需要有足够的现金找零,以免影响消费者的购物体验。 总的来说,自动售货机优点突出,未来将会有更多的自动售货机进入市场,方便人们的日常生活。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值