C语言博客作业--一二维数组

一、PTA实验作业

题目1:7-4 简化的插入排序

  1. 本题PTA提交列表

  2. 设计思路
    int a[10],赋初值为0
    int n,x,i,t
    输入n的值
    输入数组a
    输入x的值
    a[n]=x 将要插入的数放在最后
    for 0 to n-1
    若这个数a[n]小于其中一个数,就交换他们的值
    打印排序结果

3.代码截图

4.本题调试过程碰到问题及PTA提交列表情况说明。
这题没什么大问题,只要思路有了,就好做了,刚开始我没有把这个要插入的数放进数组,所以实现不了多次交换,后面把它放进去了就好做了

题目2:7-6 阅览室

  1. 本题PTA提交列表
  2. 设计思路
    int n
    int i,j,booknum,flag[1001]赋初值为0,t[1001],time=0计借阅时间,count=0,y放小时,x放分钟
    char ch,space
    for 0 to n-1
    time=0
    count=0
    while(恒真)
    {
    输入书号,键号,时间
    if书号为0,结束工作跳出循环
    if键号为S,t[booknum-1]=y60+x;flag[booknum-1]=1,flag为1,表示为借阅状态
    else
    { if flag[booknum-1]为1 flag[booknum-1]=0 ; flag重新为0,表示归还,为下一次输入准备 ; count自增 ; time=time+y
    60+x-t[booknum-1]算出总时间
    }
    if count 为0 输出0,0
    else 输出借书次数count和平均阅读时间
    }
    3.代码截图

    4.本题调试过程碰到问题及PTA提交列表情况说明。
    开始不懂怎么计算借阅时间,请教了一下同学,就是把起点设在0点,然后把所有时间化成分钟相减就是借阅时间
    还有一个郁闷的地方,就是键值的大小写,开始我打的是小写,找了半天没发现,后来仔细阅读了一下才看见

题目3:7-9 判断上三角矩阵

  1. 本题PTA提交列表

  2. 设计思路

int T,n,i,j,k,a[11][11],flag=0flag判断是否为上三角矩阵
输入T的值
for 1 to T
{
flag=0,每次循环将flag初始化为0
输入矩阵a
i for 0 to n-1
{ j for 0 to i
if a[i][j] 不等于0,flag=1,跳出循环
}
if flag等于0 输出YES
else 输出NO
}
3.代码截图

4.本题调试过程碰到问题及PTA提交列表情况说明。
这题主要问题是没有在每次循环开始时将flag重新变为0,导致后面循环出错,经过调试,发现后面flag值不变才意识到问题

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

三、同学代码结对互评

1.互评同学名称:钟文杰
2.我的代码、互评同学代码截图
我的代码

钟文杰的代码

3.我和同学代码不同在哪里?有哪些各自优势?你更喜欢哪种代码风格?
首先,他的代码比我精简,总体设计的思路差不多,但我考虑的比他多一点,想到了首个数字的判定,而他就没有,不过他也有简练的地方,比如我多用了一个max来放出现最大次数,其实可以不用

四、本周学习总结

1.你学会了什么?

1.1 C中如何存储字符串?
使用字符数组存

1.2 字符串的结束标志是什么,为什么要结束标志?
\0 方便给定循环条件
1.3 字符串输入有哪几种方法?
scanf("%s",a);
gets(a)
for(i=0;i<10;i++)
scanf("%c",&a[i]);
while((a[i]=getchar())!='\n')i++;
1.4 数字字符怎么转整数,写个伪代码?
char c;
int n;
输入字符数字c
n = c-48
输出整型数字
1.5 16进制、二进制字符串如何转10进制?写伪代码?
char hexad[80]
int number
number=0
i for 0 to hexad[i]不等于\0
{ if hexad[i]是数字 number=number16+hexad[i]-48
else if hexad[i]是大写字母 number=number
16+hexad[i]-65+10
else if hexad[i]是小写字母 number=number*16+hexad[i]-97+10

char two[80]
i for 0 to two[i]不等于\0
n=7
if n>=0
{
term=(two[i]-'0')*pow(2,n);
sum=sum+term;
}
n自减

2.本周的内容,你还不会什么?
pta上查验身份证那题有一个检查点不知道什么意思

还有删除字符串中的子串那题

附上代码

3.期中考试小结

3.1 你认为为什么没考好?
第一次 书面考试,有点不适应,还有慨念的东西背不熟,代码写得不熟练
3.2 罗列错题。
1.

审题没认真
2.

漏了一个等号,对界点的条件没搞清楚
3.改错题最后一个没改出来,n++要改为n=n+2,平常n++写习惯了,就把他略过去了
4.

复数怎么计算不会
delta=bb-4ac; re=-(double)b/(2a);

im=sqrt(fabs(delta))/(2*a); if (delta<0){

printf(" 有 两 个 不 同 复 根 x1=%.6lf+%.6lfi ,x2=%.6lf-%.6lfi \n",re,im,re,im);

3.3 下半学期要怎么调整C的学习?
磨刀不误砍柴功 ,我觉得要先把知识吃透,不然题目做起来很没有效率

posted @ 2017-12-03 11:43  夜雨生虹  阅读(328)  评论(3编辑  收藏  举报