码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2017-12-03 12:49:16      阅读:212      评论:0      收藏:0      [点我收藏+]

标签:整型数字   调试过程   简化   次数   ble   分享   tchar   sqrt   get   

一、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 判断上三角矩阵

  3. 本题PTA提交列表
    技术分享图片

  4. 设计思路

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++写习惯了,就把他略过去了
  3. 技术分享图片
    复数怎么计算不会
    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的学习?
磨刀不误砍柴功 ,我觉得要先把知识吃透,不然题目做起来很没有效率

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

标签:整型数字   调试过程   简化   次数   ble   分享   tchar   sqrt   get   

原文地址:http://www.cnblogs.com/hbw985609191/p/7956646.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!