第十四,十五周PTA作业

时间:2023-01-28 08:50:07

1.第十四周part1 7-3

#include<stdio.h>
int main()
{
int n;
scanf("%d",&n);
int a[n]; int i;
for(i=;i<n;i++){
scanf("%d",&a[i]);
}
printf("%d",a[n-]);
for(i=n-;i>=;i--){
printf(" %d",a[i]);
} return ;
}

第一步:由题意得,先定义一个整型变量n,输入所需要的数组里面的量。

第二步:定义a【n】这个数组,和整型变量i。

第三步:利用for循环输入n个数。

第四步:先输出最后一个数,然后利用for循环从倒数第二个数开始依次输出,输出时再%d前加一个空格,这样就可以是的答案末尾没有多余的空格。

截图:

第十四,十五周PTA作业

错误:

1:一开始没想到需要先输出一个数,然后再按顺序倒着依次输出,所以导致输出格式与题目要求不符合。

2:在pta输入时,由于该平台不会自动补全大括号,双引号等,导致多次编译错误。

流程图:

第十四,十五周PTA作业

2:第十四周part1 7-4

#include<stdio.h>
int main()
{
int i,a[]={,};
printf("%6d",a[]);
printf("%6d",a[]);
for(i=;i<;i++)
{
a[i]=a[i-]+a[i-];
printf("%6d",a[i]);
if((i+)%==)
{
printf("%c",'\n');
}
}
return ;
}

第一步:由题意得先定义一个整型变量i和一个含有十二位数的数组。

第二步:定义数组时,给前两位数进行初始化赋值,都为1。

第三步:利用for语句进行循环,循环体为后一位数为前两位数的和。

第四步:先利用for语句输出%6d的结果,然后利用if条件句进行判断,若i+1取余3为0,则进行换行,即可得到结果。

错误截图:

第十四,十五周PTA作业

错误:在pta中需要将将换行符号单独设置为一个字符变量,不然输出的格式就是错的。

流程图:

3:第十四周part2  7-4

#include<stdio.h>
int main()
{
int N,i,max,min,t,j;
scanf("%d",&N);
int a[N];
for(i=;i<N;i++){
scanf("%d",&a[i]);
}
if(N==)
printf("%d ",a[]);
if(N!=){
min=;
for(i=;i<N;i++){
if(a[i]<a[min]){min=i;
}}
t=a[min];
a[min]=a[];
a[]=t;
max=;
for(i=;i<N;i++){
if(a[i]>a[max]){max=i;
}}
j=a[max];
a[max]=a[N-];
a[N-]=j;
for(i=;i<N;i++){
printf("%d ",a[i]);
}}
return ;
}

第一步:由题意可得,需要定义N,i,max,min,t,j六个整型变量。

第二步:输入N的值,定义数组a[N],利用for循环输入N个数。

第三步:利用if条件句判断,当N为1时,直接输出a[0],当N不为1时,则先令min为0,利用for循环将每一个数与a[min]进行比较,若a[i]<a[min],则min=i,然后进行位置的调换,将最小值放到第一个位置。

第四步:同理,令max=1,同样与后面的数进行比较,条件如上,得出结果后,再将位置进行对调。最后依次输出所有的数。

错误:

1:在pta输入时,由于该平台不会自动补全大括号,双引号等,导致多次编译错误。

2:没有考虑到当N等于一的时候,

3:第一次定义的是a[i],而不是a[N],所以导致月结错误。

流程图:

4:第十五周pta part1 7-1

#include<stdio.h>
int main()
{
int m,n,i,j,sum=; scanf("%d %d",&m,&n);
int a[m][n];
for(i=;i<m;i++){
for(j=;j<n;j++){
scanf("%d",&a[i][j]);
}
}
for(i=;i<m;i++){
for(j=;j<n;j++){
sum=sum+a[i][j];
if(j==n-){
printf("%d",sum);
printf("\n");
sum=;
}
}
}
return ;
}

第一步:由题意得,定义整型变量m,n,i,j,sum=0。

第二步:输入m,n的值。

第三步:定义二维数组a[m][n],利用for循环输入二维数组的值。

第四步:利用for循环求和,在第二层循环里加入一个if条件句进行判断,当j==n-1,就输出一次sum,然后换行,再将sum归零,进行下一次循环,这样就得到结果了。

错误:

1:没有弄明白需要在哪个循环加上if语句,导致求的和都在一行,没有换行。

2:没有在循环里加入使sum为0的语句,然后编译错误。

流程图:

coding地址:https://coding.net/u/wangzhiheng/p/pta14-15/git/tree/master/

第十四,十五周PTA作业

个人总结:

这一周,我学习了数组之类的知识。学会了,将一些有规律或者无规律的数进行排列,计算,求下标等一系列知识,让我对C语言又进一步加深了理解。

难点:

关于二维数组的双层循环还是在有的复杂的题目上弄不太懂,还有在循环里加入别的判断语句等等,可能我不是能很明白的理解,加在哪一个循环里,才能解决问题。

点评同学:

1:徐敬淇:http://www.cnblogs.com/SR1011/p/7965948.html

截图:第十四,十五周PTA作业

2:赵升旗:http://www.cnblogs.com/boke2017boke/p/7965813.html

截图:第十四,十五周PTA作业

3:孙娜:http://www.cnblogs.com/sun-na-/p/7875394.html

截图:第十四,十五周PTA作业

第十四,十五周PTA作业

第十四,十五周PTA作业