C语言第七周作业

每个单词的最后一个字母改成大写
函数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;
}
/* 请在这里填写答案 /
输入样例:
Cmy friend is happy
输出样例:
CAfter changing: mY frienD iS happy
1.实验代码
void fun(char p)
{
for(;p!='\0';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\n",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<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.实验代码
void delchar(char *str, char c);
int main(void)
{
int repeat,i;
char str[100],c;
scanf("%d\n",&repeat);
for(i=1;i<=repeat;i++){
gets(str);
c=getchar();
delchar(str,c);
printf("result: %s\n",str);
}
return 0;
}
void delchar(char *str, char c)
{
int j,k=0;
for(j=0;str[j]!='\0';j++){
if(str[j]!=c){
str[k]=str[j];
k++;
}
}
str[k]='\0';
}
2.设计思路

3.遇到的问题和解决方法
问题:自己对题目进行了简化分析,结果出现答案错误
解决方法:向班上的同学请教,自己再仔细思考

4.运行结果截图

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


心得
感觉自己还存在一些问题,每次无论题目是简单还是困难都需要花费很长的时间,希望自己以后能多练习加强对知识点的理解。
结对编程:感觉我们两个都做得还不够好,希望在接下来的时间能相互学习,共同进步。
C语言第七周作业的更多相关文章
- C语言--第七周作业评分(5班)
作业链接:https://edu.cnblogs.com/campus/hljkj/CS2017-5/homework/1304 一.评分要求 要求1 完成PTA第七周所有题,总共两次题,每次12.5 ...
- C语言--第七周作业
一.求交错序列前N项和 1.代码 #include <stdio.h> int main() { int i=1,N; double j=0,sum=0; scanf("%d&q ...
- C语言——第七周作业
题目 题目一:求交错序列前N项和 1.实验代码 #include <stdio.h> int main() { int n , i , b ; , a , c ; scanf(" ...
- 网络1711班 C语言第七次作业批改总结
网络1711班 C语言第七次作业批改总结 1.本次作业评分细则 1.1 基本要求(1分) 按时交 - 有分 未交 - 0分 迟交一周以上 - 倒扣本次作业分数 抄袭 - 0分 泛泛而谈(最多七分) 1 ...
- 2017-2018-1 我爱学Java 第六七周 作业
团队六七周作业 完善版需求规格说明书 制定团队编码规范 数据库设计 后端架构设计 TODOList 参考资料 完善版需求规格说明书 <需求规格说明书>初稿不足之处: 1.开发工具写错 2. ...
- 2018-2019-1 20189221 《Linux内核原理与分析》第七周作业
2018-2019-1 20189221 <Linux内核原理与分析>第七周作业 实验六 分析Linux内核创建一个新进程的过程 代码分析 task_struct: struct task ...
- 2017-2018-1 JAVA实验站 第六、七周作业
2017-2018-1 JAVA实验站 第六.七周作业 详情请见团队博客
- 2017-2018-1 JaWorld 第六、七周作业
2017-2018-1 JaWorld 第六.七周作业 修改需求规格说明书 上次的<需求规格说明书>初稿有哪些不足? 王译潇同学回答: 1. 引言和目的性考虑的不是很周全. 2. ...
- 2017-2018-1 20179205《Linux内核原理与设计》第七周作业
<Linux内核原理与设计>第七周作业 视频学习及操作分析 创建一个新进程在内核中的执行过程 fork.vfork和clone三个系统调用都可以创建一个新进程,而且都是通过调用do_for ...
随机推荐
- 内置json&pickle&shelve&xml
序列化:把对象(变量)从内存中变成可存储可传输的过程称之为序列化,Python中叫做pickling,其他语言中也被称之为serialization,marshalling,flattening等等 ...
- Nginx配置https兼容http
现象 如果一个https站点里面有引用一些http的静态资源,图片可以正常加载,但是js文件.css文件就会加载失败,如下图: 原因 为了解释这个问题,首先要理解一下Mixed Content的概念: ...
- Codeforces 959 树构造 暴力求最小字典序互质序列
A B C 题目给你一个结论 最少需要min((odd,even)个结点可以把一棵树的全部边连起来 要求你输出两颗树 一棵树结论是正确的 另外一棵结论是正确的 正确结论的树很好造 主要是错误的树 题目 ...
- CCF201412-2 Z字形扫描 java(100分)
试题编号: 201412-2 试题名称: Z字形扫描 时间限制: 2.0s 内存限制: 256.0MB 问题描述: 问题描述 在图像编码的算法中,需要将一个给定的方形矩阵进行Z字形扫描(Zigzag ...
- Chrome设置--disable-web-security解决跨域问题
这里介绍的是--disable-web-security参数.这个参数可以降低chrome浏览器的安全性,禁用同源策略,利于开发人员本地调试. (1)新建一个chrome快捷方式,右键“属性”,“快捷 ...
- java调用存储过程的方式
1.问号是入参和出参,出参要指定类型 CallableStatement pstmt = conn.prepareCall("{call dbo.UP_CodeUp_***(?,?,?,?, ...
- Task6.PyTorch理解更多神经网络优化方法
1.了解不同优化器 2.书写优化器代码3.Momentum4.二维优化,随机梯度下降法进行优化实现5.Ada自适应梯度调节法6.RMSProp7.Adam8.PyTorch种优化器选择 梯度下降法: ...
- 8:Spring Boot Shiro记住密码
1,添加Cookie 2,添加安全管理器中 3,配置记住我, 4 ,在登录页面中加我rememberMe复选框 /** * 1.配置Cookie对象 * 记住我的cookie:rememberMe * ...
- luogu 3488 [POI2009]LYZ-Ice Skates 线段树 + 思维
Code: #include <bits/stdc++.h> #define setIO(s) freopen(s".in","r",stdin), ...
- redis过期策略设置
中6中过期策略的具体方式. redis 中的默认的过期策略是volatile-lru .设置方式 可以通过命令直接设置 config set maxmemory-policy volatile-lru ...