C语言作业

一、PTA实验作业(4分)

题目1: 将数组中的数逆序存放

1. 本题PTA提交列表(要提交列表,不是结果)

2. 设计思路(用代码表示扣分)

定义n用于存放输入的数字个数,number[999]用来存放输入数字,t,i用于讨论;
输入n
for(i=0;i<=n-1;i++){
输入number[i];
}
如果n%2==0{
定义k
for (k=0;k<=(n/2)-1;k++){
t=number[k];
number[k]=number[n-1-k];
number[n-1-k]=t;
}
定义k
for(k=0;k<=n-1;k++){
输出number[k];
if(k!=n-1){
输出空格
}
}
}
否则(也就是n%2不为0) {
for(k=0;k<=n/2;k++){
t=number[k];
number[k]=number[n-1-k];
number[n-1-k]=t;
}
for(int k=0;k<=n-1;k++){
输出number[k]
if(k!=n-1){
输出空格

3.代码截图(注意,截图,截图,截图。不要粘贴博客上。不用用···语法去渲染)

4.本题调试过程碰到问题及PTA提交列表情况说明。

1.需要再定义一个变量t用于暂存前一个number的值,否则后一个number与前一个交换后还是原来的值
2.在这里如果是奇数则中间数难以表达,于是我将奇偶分开讨论

题目2:简化的插入排序

1. 本题PTA提交列表(要提交列表,不是结果)

2. 设计思路(用代码表示扣分)

定义 number[10]用于存放数组十个数;
定义n用于存放输入数字的个数,a;
输入n;
当n不为0{
for(int i=0;i<n;i++){
	输入number[i]
}
输入a
if(a<number[0]){
		输出a的值
	}
for(int i=0;i<n;i++){
	输出number[i]
	if(a>number[i]&&a<number[i+1])
	输出a
}
if(a>number[n-1]){
		输出a;
	}}
	else {
		输入a的值;
                    输出a的值;
	}

3.代码截图(注意,截图,截图,截图。不要粘贴博客上。不用用···语法去渲染)

4.本题调试过程碰到问题及PTA提交列表情况说明。

1.题目要求每个数字后边要有空格,当时漏了
2.有负数要插在头,当时错

题目3:点赞

1. 本题PTA提交列表(要提交列表,不是结果)

2. 设计思路(用代码表示扣分)

输入n
定义数组a[n][10] 
for(i=0;i<n;i++) 输入k for(j=0;j<k;j++)  输入a[i][j];

遍历a数组   t=a[i][j]  b[t]++    
    定义max=b[0];m=0;
for(i=1;i<1001;i++){
	if(b[i]>=max){
		max=b[i];
		m=i;
	}
}
输出m和max的值;

;###3.代码截图(注意,截图,截图,截图。不要粘贴博客上。不用用···语法去渲染)

4.本题调试过程碰到问题及PTA提交列表情况说明。

1.全不同, 取到编号边界值,当时多次输出
2. 有并列, 取编号最大者,后设计一个max变量解决

二、截图本周题目集的PTA最后排名。(2分)

PTA排名

三、同学代码结对互评(1分)

1.互评同学名称 吴军霖

2.我的代码、互评同学代码截图

我的:

大佬的:

3.我和同学代码不同在哪里?有哪些各自优势?你更喜欢哪种代码风格?如果同学代码有错的也请帮忙指出来哪里出问题。

我的代码:当时没注意到数组的特殊性,就直接用代入法写,有点是方便,但是太耍小聪明(当时没看出来题目要干啥)

他的代码:传统做法,并且排序更加整齐完美,牌面看起来也更舒服

你更喜欢哪种代码风格? 按牌面讲,他的更好看,思路也更清晰,但是考试的时候建议还是用我的写节约时间

注意:第3项是评分重点,一定要有针对性说出问题,别都说好话,请专业去说他代码有哪些优势、哪些劣势。

四、本周学习总结(3分)

1.你学会了什么?

1.1 C中如何存储字符串?

在c语言中存储一个字符串,一般有两种方法,一种是字符指针,一种是使用字符数组.

1.2 字符串的结束标志是什么,为什么要结束标志?

'\0'是字符串数组的结束标志,因为有利于知道字符串的sizeof

1.3 字符串输入有哪几种方法?

1.scanf(“%s”,&ch)
2.for(i=0;i<n;i++)
scanf("%c",ch[i])
3.i=0;
while((ch[i]=getchar())!='\0'){i++}

1.4 数字字符怎么转整数,写个伪代码?

用字符的值减去'0';
定义字符数组char c;
定义整型变量int n;
c = getchar();
n = c-48;/48是0的ascii码值/
输出n

1.5 16进制、二进制字符串如何转10进制?写伪代码?

定义字符串b【999】,输入b
当a不为0
number=number*16+b[i]-'0';

2.本周的内容,你还不会什么?

1.还不会关于字符数组怎么从中间插入 删掉字符(PTA题)
2.约瑟夫环不熟练(PTA猴子当大王)

3.期中考试小结

3.1 你认为为什么没考好?

1.基础不扎实,送分没拿到
2.大题代码写太乱,明明思路全是对的,但阅卷人看到有太低级的错误以及没注释的卷面就没心情网细看了

3.2 罗列错题。

请在选择题、填空题、改错题、编程题分别举一题说明为什么错了,怎么改?
1.选择题:
6.设变量已经正确定义并赋值,正确C语言语句是
A、x+n=i; B、x=y==5; C、x=n%2 D、x=5=4+1;
答案为B 错选C 原因:没看到C后没分号,感觉对了就选了
2.填空题

3.改错题
第一题只看到语法错误,没注意到是否符合程序要求,对于函数的基础略差
4.编程题
计算组合数定义组合数计算时用了int,应改成double

3.3 下半学期要怎么调整C的学习?

不单纯的打pta 还要对书本知识有针对性的复习

posted @ 2017-12-03 20:50  林怡鹏  阅读(1175)  评论(1编辑  收藏  举报