2019春季作业
这个作业属于哪里 | c语言程序设计 |
这个走也要求在哪里 | https://edu.cnblogs.com/campus/zswxy/software-engineering-class2-2018/homework/2935 |
我在这个课程的目标是 | 学习冒泡排序,了解指针,数组,地址间的关系,两个相同类型的指针可以加减 |
这个作业在那个具体的方面帮助我实现目标 | 使用自定义函数来进行编程,以及使用地址来进行存储,对数组初始化使用 |
参考文献 | C语言程序设计 |
2019春第七周作业
6-2 每个单词的最后一个字母改成大写
函数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("\nAfter changing: %s\n", chrstr);
return 0;
}
/* 请在这里填写答案 */
输入样例:
my friend is happy
输出样例:
After changing: mY frienD iS happY
1.代码。
void fun(char *p)
{
int i=0;
while( *(p+i)!='0')
{
if(*(p+i+1)==' ')
{
*(p+i)=*(p+i)-'a'+'A';
}
i++;
}
}
2.设计思路图。
3.问题与方法。
问题:在进行最后一个字符的判断时,出现错误,是前面一个加一还是后面一个加一;
方法:室友告诉我说是后面一个加一,只有在后面一个才是下一个单元。
问题:将小写字符改为大写;
方法:利用ASCII值,大小写差的值是32;
4.运行编辑图。
7-2 自动售货机 (30 分)
1.代码。
#include
#include
int main(void)
{
int n,i,s;
int p[11]={0},q[11]={0,1,1,1,2,2,3,3,3,4,4};
char a[11][30]={" ","Table-water","Table-water","Table-water","Coca-Cola","Milk","Beer","Orange-Juice","Sprite","Oolong-Tea","Green-Tea"};
int money=0,total=0,change;
while(scanf("%d",&n))
{
if(n==-1)
break;
else
money=money+n;
}
while(scanf("%d",&s))
{
if(s==-1)
break;
else
p[s]++;
}
for(i=0;i<11;i++)
{
total=total+p[i]*q[i];
}
change=money-total;
if(change<0)
{
printf("Insufficient money");
}
else
{
printf("Total:%dyuan,change:%dyuan\n",money,change);
for(i=0; i<11;i++)
{
if(p[i])
printf("%s:%d;",a[i],p[i]);
}
}
return 0;
}
2.设计思路图。
3.问题与方法。
问题:不知道如何计算总的钱数;
方法:使用哪个单价乘以其数量;
问题:对于输入的编号,不知道如何进行存贮;
方法:定义一个数组用来进行存贮,同时对这个数组初始化为0;
问题:总是出现答案错误;
方法:是刚开始的物品字母出现错误,所以打代码是一定要细心。
4.运行编辑图。
7-1 使用函数删除字符串中的字符
输入一个正整数 repeat (0 输入一个字符串 str,再输入一个字符 c,将字符串 str 中出现的所有字符 c 删除。 要求定义并调用函数delchar(str,c), 它的功能是将字符串 str 中出现的所有 c 字符删除,函数形参str的类型是字符指针,形参c的类型是char,函数类型是void。 输入输出示例:括号内为说明,无需输入输出 问题:对于自定函数的使用,形参与实参的转换有问题; 当我们学习的知识点有一定的链接的时候,考验我们的基本功的时候到了,要是一千血的不是很扎实,将会出现一些问题。地址,指针,数组的共同使用,特别是与自定义函数的使用,调用的是地址还是元素,需要我们仔细考虑。 我与我的搭档一起研究了第二题的方法,看到题目我们想到了以前我们所学的switch语句,但是这次我没有使用,而是用了数组的方法,有借鉴同学的代码,对于数组的存储数字,如何使用一起讨论。同时一起查找错误,思路不同是,可以一起借鉴对方的方法。输入样例:
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.代码。
#include
2.设计思路图。
3.问题与方法。
方法:问了我的室友,以及看书查阅资料。形参与实参在使用指针的时候,一点要去注意传递下来的是地址,还是元素。4.运行编辑图。
学习进度条。
周/日期
这周所花的时间
代码行
学到的知识点简介
目前比较迷惑的问题
第一周 2.23-3.2
三天
40
一维数组的定义和使用;一维数组的初始化;以及使用一维数组编程
一维数组的定义,以及字符的定义,不能很好的定义;以及使用for循环语句输入数值,字符,觉得不是很得心应手
第二周 3.3-3.9
四天
70
使用文件来编程;了解文件的概念;文本文件与二进制文件;缓冲文件系统;文件的结构与文件类型指针;文件的打开方式
文件的输入输出,无法确保其输入输出,总是会忘记再加上fscanf与fprintf;以及文本的使用,不知道如何更好地使用
第三周 3.10-3.16
三天
80
预习二维数组;了解其定义与引用; 了解其用法与初始化
文件的使用还有很大的问题,总是会出现无法打开其文件的错误;二维数组则是下标的确立有问题
第四周 3.17-3.22
四天
60
学习二维数组定义,初始化以及选择排序法,自主学习冒泡排序法
自定义函数的使用还存在很大的问题
第五周 3.23-3.29
三天
70
学习一维字符数组的使用,以及二维字符数组的使用,新的标准库函数函数的使用
字符与字符串的不同使用,循环结构的嵌套还存在许多问题,以及逻辑思维能力还有待提高
第六周 4.1-4.5
两天
75
学习使用指针来进行编程,以及重新回顾自定义函数的使用
指针的使应以及理解还存在问题,使用自定义函数是调用的时候,分不太清楚是参与形参
第七周 4.6-4.12
两天
80
学习使用指针来进行自定义函数的使用,以及对数组的初始化的使用与理解
对于自定义函数的使用与指针,数组,地址间共同来进行使用,对该变量是地址,还是元素有较大的问题
学习感悟。
结对编程感悟。
学习折线图。