C语言博客作业--一二维数组
题目:
1. 本题PTA提交列表
2. 设计思路
int n,i,j,k,count,number;n输入整数个数 count相同数个数 number相同数;
输入n
int 两个数组 a{n}储存输入数组 time[n]储存相同数个数数组
利用循环for(j=0;j<n;j++)
count=0;
for(k=n-1;k>=0;k--){
if(a[j]==a[k])
如果出现相同数,则count加1
利用 time[j]储存count
将max赋值为time【0】
for(i=0;i<n;i++) 判断max与time【i】的关系 如果比max大就赋值给max
对number赋值为a【i】
输出结果
3.代码截图(注意,截图,截图,截图。不要粘贴博客上。不用用···语法去渲染)
4.本题调试过程碰到问题及PTA提交列表情况说明。
(PTA提交列表中的每个错误详细说明为什么及如何解决。)
虽然这道题出现很多问题,但都是格式错误,不需要调试就能找出问题。
题目:7-7 找鞍点
1. 本题PTA提交列表
2. 设计思路
输出n;输出二维数组a【100】【100】={0};
定义一个一维数组b【100】={0},max,min,k,x=0;
for(i=0;i<n;i++)
将max赋值为a[i][0];
for(j=1;j<n;j++)
如果(max<=a[i][j]){
将max赋值为a[i][j];
将b[i]赋值为max;
for(j=0;j<n;j++)
将min赋值为a[0][j];
for(i=1;i<n;i++){
如果(min>=a[i][j]){
讲min赋值为a[i][j];
将k赋值为i;
if(min==b[k])
输出k,j
将x赋值为1
if(x!=1){
输出none
3.代码截图(注意,截图,截图,截图。不要粘贴博客上。不用用···语法去渲染)
4.本题调试过程碰到问题及PTA提交列表情况说明。
(PTA提交列表中的每个错误详细说明为什么及如何解决。)
出现段错误uploading-image-459503.png
解决方法:定义a【100】【100】={0};
题目:7-11 二分查找法
1. 本题PTA提交列表
2. 设计思路
int a[10]={1,2,3,4,5,6,7,8,9,10};
int i,n,count=0;
输出n
for(i=0;i<10;i++)
if(a[i]==n)
输出("weizhi:%d",i);
break;
count++;
if(count>9)
输出not found
3.代码截图(注意,截图,截图,截图。不要粘贴博客上。不用用···语法去渲染)
4.本题调试过程碰到问题及PTA提交列表情况说明。
(PTA提交列表中的每个错误详细说明为什么及如何解决。)
问题:
解决:把int a[9]={1,2,3,4,5,6,7,8,9,10};改为int a[10]={1,2,3,4,5,6,7,8,9,10};
二、截图本周题目集的PTA最后排名。(2分)
PTA排名
三、同学代码结对互评(1分)
1.互评同学名称
梁建雄
2.我的代码、互评同学代码截图(此处截图核心代码就好,不一定截图全部代码,图上指明是谁的代码。)
建雄为
我为
3.我和同学代码不同在哪里?有哪些各自优势?你更喜欢哪种代码风格?如果同学代码有错的也请帮忙指出来哪里出问题。
(注意:第3项是评分重点,一定要有针对性说出问题,别都说好话,请专业去说他代码有哪些优势、哪些劣势。)
我是直接int a[10]={1,2,3,4,5,6,7,8,9,10}; 并且定义一个count来储存次数。而建雄则是通过循环for(i=0;i<10;i++) a[i]=i+1来输入数组数据。我更喜欢他的代码,因为我的局限性很大,如果数组a的值很多,那么我定义起来就很麻烦,而建雄的就可以通过循环轻易储存数组数据。而且我还多定义一个变量来储存数据。
四、本周学习总结(3分)
1.你学会了什么?
1.1 C中如何存储字符串?
一般有两种方法,一种是字符指针,一种是使用字符数组
1.2 字符串的结束标志是什么,为什么要结束标志?
C系统在用字符数组存储字符串常量时会自动加一个‘ \ 0 ’ 作为结束符.它作为标志占用存储空间但不记入串的实际长度,所以用来作为字符串的结束标志
1.3 字符串输入有哪几种方法?
1.while((a[i]=getchar())!='\n')
i++;
a[i]='\0';
2.sacnf("%s",a);
3.gets(a);
1.4 数字字符怎么转整数,写个伪代码?
char a[10]
int number=0,i
gets(a)输入字符串
for i=0 to a[i]!='\0'
number=number*10+a[i]-'0'
1.5 16进制、二进制字符串如何转10进制?写伪代码?
16进制:
定义变量i,number
初始化number为0
定义数组hexad来存放16进制数
for i=0 to hexad[i]!='\0'
if hexad[i]为0到9之间的数
number=number16+hexad[i]-'0'
if hexad[i]为A到F
number=number16+hexad[i]-'A'+10;
if hexad[i]为a到f
number=number16+hexad[i]-'a'+10;
输出number
2进制:
定义变量i,number
初始化number为0
定义数组hexad来存放2进制数
for i=0 to hexad[i]!='\0'
number=number2+hexad[i]-'0';
输出number
2.本周的内容,你还不会什么?
(详细罗列不明白地方,包括课堂派错题、PTA错题。)
不明白str1[j]!=str2[k]的意义,上课还一知半解,回去思考后发现直接没有思路。
3.期中考试小结
3.1 你认为为什么没考好?
1.编程量少,编程时花费很多无用时间
2.没有好的学习方法,利用不好时间
3.不够自信,很多题明明有思路,但是不敢写上去。
4.不明白怎么把题目用算法表达,也不知道怎么转化成c语言表达方式。
5.不会利用伪代码写题目。
3.2 罗列错题。
(请在选择题、填空题、改错题、编程题分别举一题说明为什么错了,怎么改?)
程序题第三个字幕菱形
看见代码很复杂,就选择放弃。忘记了ASCII码的值,不知道ch=65为A,然后内abs吓破了胆,其实是fabs,绝对值。其实在草稿上把循环画出来,答案就出来了。
3.3 下半学期要怎么调整C的学习?
感觉越学越费力,然后也不知道怎么改变现状。我试过自己一个人独立打代码和调试,简单的题很快就写完,不会的题花很多时间都不会做。然后一看同学代码就明白他的思路,但是自己再重新写代码的时候,又会出现各种问题,可以说是只能模仿出代码的形而没有灵魂。而且更重要的是上课都听不懂了,一些思路或者步骤感觉到莫名奇妙。调整的话还是从课堂开始,先把基础打好,这样写题才有效率,如果课都没听懂,做题也是不会做。上课态度端正,拿出高中的认真。