C语言博客作业--一二维数组
一、PTA实验作业
题目1:求整数序列中出现次数最多的数
1. 本题PTA提交列表
2. 设计思路
定义大小为1000的数组a,b,整型变量N,i,j,max,maxnum;
输入N;
for i=0 to N-1
input a[i];
for i=0 to N-1
b[i]=0;
for i=0 to N-1
for j=0 to N-1
if a[i]==a[j]
b[i] 自增;
max=0;
for i=0 to N-1
{ if b[i]大于max
then{ max=b[i];
maxnum=i;
}
}
output a[maxnum],max;
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明。
这是之前尝试过的两个代码
第一次打出的代码,我把它限制为只出现数字1~10,所以错误,后来改写代码,又因为计数的问题卡了很久,经过多次修改才成功。
题目2:简化的插入排序
1. 本题PTA提交列表
2. 设计思路
定义整型变量i,j,N,x;
input N;
定义整型数组a[N];
for (i =0 to N-1) input a[i];
input x;
for i=0 to N{
if x<=a[i]
{ for i=N+1 to i
a[j]=a[j-1];
}
a[i]=k;
break;
}
for(i=0 to N)
output a[i];
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明。
一直都是这个测试点错误,尝试用不同的方法输入不同的数字,仍然找不到错误。
题目3:判断上三角矩阵
1. 本题PTA提交列表
2. 设计思路
定义整型变量T,i,n,p,q,flag;
input T;
for(i=1 to T)
{ flag=1;
input n;
定义整型数组 a[n][n];
for(p=0 to n)
for(q=0 to p)
input a[p][q];
for(p=0 to n)
for(q=0 to p)
if a[p][q]!= 0;
flag = 0;
if flag -> 1
output YES
else
output NO
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明。
这题没有太大问题,但是因为写代码过程中行列弄错,所以写进来做个记录。
二、截图本周题目集的PTA最后排名。
三、同学代码结对互评
1.互评同学名称
曾文惠
2.我的代码、互评同学代码截图
我的代码
曾文惠的代码
3.我和同学代码不同在哪里?有哪些各自优势?你更喜欢哪种代码风格?如果同学代码有错的也请帮忙指出来哪里出问题。
我的代码在进入循环后,先判断某个数在它所在行是否为最大,再判断找出该数所在列最小的数与这个数是否相同,否则改变行再次判断;曾文惠同学与我不同的是在循环外多判断一次只有一个数时的情况。我怕更喜欢我的代码,比曾文惠同学少判断一次,但是结果是相同的。
四、本周学习总结
1.你学会了什么?
1.1 C中如何存储字符串?
字符数组初始化(1)char s[5]={'h','a','p','p','y'} (2)char str[80]=
(2)中只对前6个元素赋初值,其他元素的值不确定,str[5]为'\0'。
1.2 字符串的结束标志是什么,为什么要结束标志?
(1)字符串的结束标志是‘\0’;
(2)在字符串遍历数组时,由于字符串并没有明确地给出有效字符的个数,只规定在字符串结束符‘\0’之前的字符都是有效字符,一般用字符串结束符‘\0’来控制循环。
1.3 字符串输入有哪几种方法?
第一种:采用赋值的方式:
例如:char a[80]="welcome";
第二种:用scanf函数,字符串的格式控制说明为%s
例如:scanf("%s",s);
第三种:用gets函数
例如:gets(s);
scanf与gets不同之处在于:scanf遇到回车或空格就结束输入,而gets可以输入空格,遇到回车结束输入。但在结束输入时都会自动将输入的数据和<span style="color:red">‘\0’</span>送入数组中。
1.4 数字字符怎么转整数,写个伪代码?
定义字符型变量c;定义整型变量num;
input c;
num=c-'0';
output num;
1.5 16进制、二进制字符串如何转10进制?写伪代码?
16进制字符串转10进制
定义字符型数组c[1000];定义整型数组a[1000]={0};
定义整型变量i,j;
gets(c);
for i=2 当c[i]!=0 时 i++
{ if c[i]>='0'&&c[i]<='9' then a[i]=c[i]-'0';
if c[i]>='a'&&c[i]<='z' then a[i]=c[i]-87;
if c[i]>='A'&&c[i]<='Z' then a[i]=c[i]-55;
}
a[i]=-1;
定义整型变量sum=0;
for p=2 当a[p]!=-1时 p++
for j=i-4 to j>=0
{ b[p]=pow(16,j-4);
sum=sum+b[p];
}
output sum;
二进制字符串如何转10进制也是类似于上面的方法
2.本周的内容,你还不会什么?
本周PTA题目的第四题和第六题
第六题有一个测试点错误,但是还没找出来
3.期中考试小结
3.1 你认为为什么没考好?
课本中零散的知识点没有进行总结,没有认真复习课堂派中的练习,考试时注意力不集中,总是写错。
3.2 罗列错题。
一、16.
解:((y=3)&&(x<=4))中“y=3”为“真”,那么只要“x<=4”条件满足,循环就会执行,所以循环总共执行5次。
三、8.
解:7.(ch=getchar()) 8.(ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z') 考试时忘记了怎么写。。
四、1.
解:如图。
五、1.
解:忘记怎么产生随机数,具体改正看图。