博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第七周编程总结
阅读量:5729 次
发布时间:2019-06-18

本文共 3256 字,大约阅读时间需要 10 分钟。

 

本次作业所属课程

C语言程序设计||

本次作业要求

我在这个课程的目标是

理解指针与数组的关系

本次学习在哪些具体方面帮组我实现目标

学会画流程图

参考文献

C primer plus第六版

 

一、基础题

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

1)实验代码

#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("\nAfter changing: %s\n", chrstr); return 0; }void fun( char *p ){ int i; for(i=0;*(p+i)!='\0';p++) { if(*(p+i+1)==' ') *(p+i)=*(p+i)-32; }}

2)设计思路

 

3)本题调试过程中遇到的问题及解决方案

这题主要卡在了那个大小写转变的问题,查了一下百度,对比了书上后面的ASCII码集,就差不多解决了

 

4)运行结果截图

 

题目二:自动售货机

1)实验代码

#include
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 static b[11]; int c[100]; int i=1,sum=0,money,j=0,change,flag=0; scanf("%d",&money); while((money!=-1)&&(money<=10)) { sum += money; scanf("%d",&money); } scanf("%d",&c[i]); while(c[i]!=-1) { switch(c[i]) { case 1: j = j + 1;break; case 2: j = j + 1;break; case 3: j = j + 1;break; case 4: j = j + 2;break; case 5: j = j + 2;break; case 6: j = j + 3;break; case 7: j = j + 3;break; case 8: j = j + 3;break; case 9: j = j + 4;break; case 10: j = j + 4;break; default:break; } if(j>sum) { printf("Insufficient money"); flag = 1; break; } i++; scanf("%d",&c[i]); } change = sum-j; 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)本题调试过程中遇到的问题及解决方案

这题有点难,借鉴了别人的思路,一开始数组长度小了,后面在输出的if语句的判断条件又出了点问题,不过最后还是解决了,只是调试的过程有点漫长

4)运行结果截图

二、预习题

题目一:使用函数删除字符串中的字符

1)实验代码

#include
void delchar(char str[],char op);int main(){ int repeat; char str[80],op; scanf("%d\n",&repeat); while(repeat--) { gets(str); scanf("%c",&op); printf("result: "); delchar(str,op); } return 0;}void delchar(char str[],char op) { while(*str!='\0') { if(*str!=op) { putchar(*str); } str++; }}

2)设计思路

 

 

3)本题调试过程中遇到的问题及解决方案

这一题在PTA上的正确答案到Dev答案又变成错误的了,调试的过程中各种问题都出来了,主要是这题在自定义函数里面输出不是特别理解,借鉴了下别人的思路

 

4)运行结果截图

三、挑战题

题目一:子数组” 并不要求是一个矩形, 而是联通的元素即可 (上下或左右相邻即视为联通), 那解法会是怎么样呢?

自己有几把刷子心里还是有点逼数的,挑战题不会写,大概的写点思路吧:逐个查找,将他们的路径连接起来在逐个判断

四、学习进度条

时间

这周所花时间

代码行数

学到的知识简介

目前比较迷惑的问题

第一周

5小时

80

初步了解数组

数组的引用

第二周

6小时

200

指针的了解

完全没听懂老师上课在讲什么,继续努力

第三周

7小时

200

文件与数组的使用

没看到代码运行后文件的内容发生改变

第四周

9小时

120

冒泡法,选择排序法

冒泡法不会

第五周

9小时

120+

字符型数组

把代码改成文件格式

第六周

4小时

130左右

指针

指针的调用

第七周

6小时+

200

指针与数组

指针与数组的连续有点模糊

 五、累积博客字数及代码行数

六、结对编程感想

这次的题目就充分体现了我们两个人自身能力不足的缺点,题目难度偏大,两个人都做不出,思路也是乱七八糟,互相拖后腿

总结:这次的题目自我感觉偏难,做了很久效果还不明显

转载于:https://www.cnblogs.com/wangweihanqq2001/p/10698320.html

你可能感兴趣的文章
postgreSQL锁
查看>>
Kubernetes中的服务发现与负载均衡
查看>>
漫谈HTTP(下)
查看>>
Esper-技术简介
查看>>
Centos7 Firewalld 自定义富规则
查看>>
oracle创建索引应注意的因素
查看>>
40张极简摄影(Minimalist Photography),分享生活之美
查看>>
MyBatis缓存
查看>>
Docker中Mysql的安装
查看>>
2013第四届蓝桥杯 C/C++本科A组 真题答案解析
查看>>
一键编译安装LAMP环境
查看>>
网页超链接打开.exe程序
查看>>
Centos7的安装、Docker1.12.3的安装
查看>>
JS基础-DOM Document对象手册
查看>>
为什么一般无线路由器的初始地址都是192.168.1.1?
查看>>
freemarker实现分页 jsp实现分页 java内存分页
查看>>
java8的hashmap源码简单分析
查看>>
linux centos7 open***安装及客户端权限控制
查看>>
ios开发---ASIHTTPRequest下载(支持断点续传)
查看>>
Java学习:使用StAX解析XML
查看>>