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

一、PTA实验作业

题目1.简化的插入排序

1.本题PTA提交列表

2.设计思路

  • 1.定义整形变量N,num,i,和数组a[11]={0}
  • 2.输入N
  • 3.用循环输入数组中的元素
  • 4.输入num
  • 5.如果num比a[0]小,则先输出num,再按照顺序输出a[i]
  • 6.如果num比a[0]大,进入判断条件
  • 7.先按照顺序输出a[i],每输出一次a[i]就要判断一次num是否大于a[i]并且小于a[i+1]
  • 8.如果i==N-1&&a[i]<num,则直接输出num

3.代码截图

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

  • 我的代码在最开始的时候,进行插入操作时的代码是这样的

这样的话虽然中间部分没有问题,但是如果插入的数正好是最大的,那么就有问题了,因为如果num为最大,那么他确实比a[i]大,但是不可能比a[i+1]大,因为我并没有对a[i+1]赋值,值初始化为0.所以就无法输出最后一个数,只能多加一个判断语句if (i == N - 1 && a[i] < num)printf("%d ", num);来解决

题目2.阅览室

1.本题PTA提交列表

2.设计思路

  • 1.定义变量hour,min,n,num,flag[1001],count,start[1001],end[1001],time,字符型ch
  • 2.输入n
  • 3.当n--不为零时,进入循环
  • 4.time=0,count=0,初始化
  • 5.进入无限循环,输入num ch hour:min
  • 6.如果num==0,则跳出
  • 7.如果ch=='S',则start[num]=hour*60+min,flag[num]=1
  • 8.如果ch'E',再判断flag[num]是否1
  • 9.如果是,则flag[num]=0,count++,end[num]=hour*60+min
  • 10.time+=end[num]-start[num]
  • 11.按照格式输出

3.代码截图

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

  • 这道题我一直没什么思路,也没什么时间,找网上的别人代码也是用C++打得,很多头文件都看不懂,后来只能看看同班同学的代码,让我学会了用flag[1001],start[1001],end[1001]三个数组表示该书号的状态,借阅时间,归还时间.这三个东西一看懂,这道题就豁然明朗,很简单就能解决出来

题目3.判断上三角矩阵

1.本题PTA提交列表

2.设计思路

  • 1.定义变量t,n,flag
  • 2.定义二维数组a[11][11]=
  • 3.输入需要判断的次数t
  • 4.当t--不为0时进入循环
  • 5.初始化flag=0
  • 6.输入n
  • 7.循环输入二维数组
  • 8.for (int i = 0; i < n; i++) {
    for (int j = 0; j < i; j++)
    如果a[i][j]!=0,则flag=1,并跳出循环
  • 9.如果flag==0,输出YES,不然输出NO

3.代码截图

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

  • 这道题我最开始的时候我把判断条件弄反了,变成if(a[i][j]==)0,flag=1,这样的话就要判断下三角是否全部为0,最后的结果就是,只要下三角里面有一个0,那么就会直接输出YES.因为每次判断的flag并没有重置.后来想了想,发现判断时候是上三角矩阵只要判断下三角中只要有一个不为0,则不是上三角矩阵.对判断语句进行了调整,结果正确

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

四、本周学习总结

1.你学会了什么?

1.1 C中如何存储字符串?

c语言将字符串作为一个特殊的一维字符数组来处理。
1.字符串的存储一数组初始化
字符串可以存放在一维字符数组中。例如:
staticchar s [6]= I'H','a','p','p','y','\0' ;
数组s 中就存放了字符串"Happy"。
字符数组的初始化还可以使用字符串常量,上述初始化等价于:
static char s [6]= {"Happy" };

static char s[6]=''Happy'' ;

补充:有效字符
字符串的有效长度: 有效字符的个数+1 ('\0')\

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

字符串的结束标志是'\0',防止在使用数组时越界

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

scanf("%s",a);
scanf("%c",a);
gets(a);

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

定义变量 number=0 a[999];
输入字符串gets(a)
for(i=0;i!='0';i++0){
number=number*10+str[i]-'0'
end}
输出number

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

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

3.期中考试小结

3.1 你认为为什么没考好?

感觉用电脑编程和用笔写差距还是很大的,因为电脑上你有什么地方错了可以调试,可以输出,但是在笔试中,一切的输出都靠脑子,要把每一条语句干什么都要摸透.要把每一条输出语句都要模拟输出一遍.还有就是时间不太够.

3.2罗列错题。

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

做好预习作业,对于PTA上的题目要多去练习,不懂的要多去问问老师,现在C语言每周作业越来越多,难度越来越大,现在我包括写代码,博客园估计要占用一天半的时间左右.不能像以前一样随便写写就行了,调整好学习态度,下学期继续努力.

posted @ 2017-12-03 22:56  网络1611张弛  阅读(270)  评论(3编辑  收藏  举报