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前加一个空格,这样就可以是的答案末尾没有多余的空格。
截图:
错误:
1:一开始没想到需要先输出一个数,然后再按顺序倒着依次输出,所以导致输出格式与题目要求不符合。
2:在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中需要将将换行符号单独设置为一个字符变量,不然输出的格式就是错的。
流程图:
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/
个人总结:
这一周,我学习了数组之类的知识。学会了,将一些有规律或者无规律的数进行排列,计算,求下标等一系列知识,让我对C语言又进一步加深了理解。
难点:
关于二维数组的双层循环还是在有的复杂的题目上弄不太懂,还有在循环里加入别的判断语句等等,可能我不是能很明白的理解,加在哪一个循环里,才能解决问题。
点评同学:
1:徐敬淇:http://www.cnblogs.com/SR1011/p/7965948.html
截图:
2:赵升旗:http://www.cnblogs.com/boke2017boke/p/7965813.html
截图:
3:孙娜:http://www.cnblogs.com/sun-na-/p/7875394.html
截图: