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

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

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

标签:getc   调整   换行符   博客   函数   https   整数   比较   左移   

一、PTA实验作业

题目一:7-5 数组循环左移

1.本题提交列表

技术分享图片

2.设计思路

定义四个整形变量n,m,j,k
输入n,m的值
if(m==0){
定义一个数组c[n];
按顺序给该数组赋值;
按顺序输出数组c;
程序结束。
}
if(m>n){
定义一个数组c[n]
依次输入该数组中的数;
if(m%n==0){
按顺序输出数组c中的数;
程序结束。
}
else{
定义一个数组d[n]
for(i=0;i<n;i++) d[i]=c[(i+m%n)%n];
按顺序输出数组d中的数;
程序结束。
}
}
定义两个数组a【n】,b【m-n】;
按顺序输入数组a【n】中的n个数;
按顺序输入数组b【m-n】中的m-n个数;
按顺序输出数组b中的各个数;
按顺序输出数组a中的各个数
程序结束。

3.代码截图

技术分享图片

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

技术分享图片
如图所示,问题考虑不全面,导致失分。
将条件补齐后完成。

题目二:7-8 加法口诀表

1.本题提交列表

技术分享图片

2.设计思路

定义五个变量repeat,n,j,m,i,k;
输入repeat的值;
for(k=1;k<=repeat;k++){
输入n的值;
定义一个数组number【n】;
输出‘+’;
for(i=0;i<n;i++){
将i+1的值赋给number【i】;
如果i=n-1,跳出循环;
输出number【i】的值;
}输出number【n-1】的值;
for(i=0;i<n;i++){
输出number【i】的值;
for(j=0;j<=i;j++){
把number[i]+number[j]的值赋给m;
当j=i时,跳出循环;
输出m的值;
}输出m的值;
}
}
程序结束。

3.代码截图

技术分享图片

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

技术分享图片
忘记了repeat的用处以及之前没有明白输出格式,加上一个repeat条件的循环然后把n的输出放到循环中,在对中间的代码进行一些小改动就完成了,输出格式是问的同学。

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

1.本题提交列表

技术分享图片

2.设计思路

定义七个变量repeat,n,i,j,k,count,m;
输入repeat的值;
for(i=1;i<=repeat;i++){
输入n的值;
定义一个矩阵a【n】【n】;
按顺序输入矩阵中的各个数;
当矩阵下三角(不包括对角线)中的所有数均为0时,输出YES;
否,则输出NO;
}
程序结束。

3.代码截图

技术分享图片

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

技术分享图片
每次输出要占一行,所以每个输出后加上换行符;
在这里第一次接触段错误,是矩阵定义出了问题,应该把a【n-1】【n-1】改为a【n】【n】。

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

技术分享图片

三、同学代码结对互评

题目:7-5 数组循环左移

我的代码:
技术分享图片
吴军霖的代码:
技术分享图片
互评:他的代码用了函数,极为简便,但是有点难懂,可能是他的学习进度比我快出太多,运用了一些我不知道的表示方法,相较而言我的代码有点复杂而且冗长,
但是我还是比较喜欢我的代码。

四、本周学习总结

1.你学会了什么?

1.1C中如何存储字符串?

定义一个字符数组,用循环来输入该字符数组的各个字符
如:char str[10]
for(i=0;i<10;i++) scanf("%c",&str[i]);

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

‘\0‘;因为‘\0’可以用来控制字符数组的输入与输出,控制循环。

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

三种:
1.使用gets()直接输入整个字符串;
2.定义数组和循环变量,用循环结构for(i=0;i<n;i++) str[i]=getchar()即可;
3.while((str[i]=getchar())!=‘\0’);

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

定义整型变量number存放输入的数,i为循环变量
定义字符数组str[10]存放字符串
i=0
while((str[i]=getchar())!=‘\0’)
每次循环完i的值加一
number=0
for(i=0;str[i]!=‘\0’;i++)
if(str[i]>=‘0’&&str[i]<=‘9’)
number=number*10+str[i]-‘0‘
输出number

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

16进制:

定义整型循环变量i,k
定义字符数组hexad[80],str[80]
定义长整型变量number存放十进制数
i=0
while((str[i]=getchar())!=‘\0’)
    每次循环结束后i的值加一
遍历数组hexad[i]
k=0
for(i=0;str[i]!=‘\0’;i++)
字符数组str[i]输入的字符存在十六进制的字符
    数组hexad[k]存放str[i]的字符
遍历hexad数组
number=0
for(i=0;hexad[i]!=‘\0’;i++)
    如果数组hexad存放0~9的字符
    number=number*16+hexad[i]-‘0’
    如果数组hexad存放A~F的字符
    number=number*16+hexad[i]-‘A‘+10
    如果数组hexad[i]存放a~f的字符
    numbe=number*16+hexad[i]-‘a’+10
输出十进制的值number

二进制:

二进制数组a[n]
for(i=0;a[i]不为‘\0’;i加一)
n=n*2+a[i]-‘0‘
输出n

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

不会的内容很多,具体就说不出来了,实在太多了,感觉现在学习很吃力。。

3.期中考试小结

3.1你认为为什么没考好?

(1)基础差;
(2)考试前没有做充足的准备,复习不到位;
(3)考试时时间分配不合理,在分数少的选择题耗费了太多时间。

3.2 罗列错题。

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

  • 预习作业要认真及时完成;
  • PTA上的题目争取全部完成,不懂的全部弄懂;
  • 课本要仔细认真的看,静下心来,总能看得进的;
  • 上机考试前认真复习,考试后认真总结;
  • 一定要花更多更多的时间在C语言上,时间不够就挤,总会有的。

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

标签:getc   调整   换行符   博客   函数   https   整数   比较   左移   

原文地址:http://www.cnblogs.com/luyongzhi/p/7967224.html

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