第十四,十五周作业
一
1.题目7-3数组数逆序存放
(1)实验代码
#include<stdio.h>
int main(){
int n;
scanf("%d",&n);
int a[n];
int i;
for(i=0;i<n;i++){
scanf("%d",&a[i]);
}
printf("%d",a[n-1]);
for(i=n-2;i>=0;i--){
printf(" %d",a[i]);
}
return 0;
}
(2).设计思路
a)定义n,i并整型定义数组a[i]
b)将n赋值,并利用for循环将a[i]赋值
c)根据题目要求,将数进行排序
d)利用for循环进行输出
(3).流程图
(4)问题及解决办法
遇到的问题:要求行末不能有空格,老师在课上讲过,但在编程时忘记是怎么做的了
解决办法:该题我先用不加空格的形式输出最后一位,前几位用数字+空格形式输出既解决
2. 7-5冒泡排序
(1)实验代码
#include<stdio.h>
int main(){
int n,i,j,t,k;
scanf("%d %d",&n,&k);
int a[n+1];
for(i=1;i<=n;i++)
{
scanf("%d ",&a[i]);
}
for(j=1;j<=k;j++)
{
for(i=1;i<=n-j;i++)
{
if(a[i]>a[i+1])
{
t=a[i];a[i]=a[i+1];a[i+1]=t;
}
}
}
printf("%d",a[1]);
for(i=2;i<=n;i++)
printf(" %d",a[i]);
return 0;
}
(2)设计思路
a)整型定义变量n,i,j,t,k,对n,k赋值
b)定义数组a[n+1]并利用for循环进行对数组赋值
c)用冒泡法则将数组中的数字进行排序
d)输出最后一位数字,其余用数字+空格进行输出
(3)流程图
(4)问题及解决办法
问题:
输出a[i]时我忘记了写[i],导致按回车后只能换行,不能输出
其次关于冒泡法则框架不是特别熟练,有待加强
解决办法:经过几次检查之后发现了问题所在
3 7-2方阵左下三角元素和
(1)实验代码
#include<stdio.h>
int main(){
int i,j;
int a[4][4];
int sum=0;
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{
scanf("%d",&a[i][j]);
}
}
sum=a[0][0]+a[1][0]+a[2][0]+a[3][0]+a[1][1]+a[2][1]+a[3][1]+a[2][2]+a[3][2]+a[3][3];
printf("%d",sum);
return 0;
(2)设计思路
a)定义整型变量i,j,初始化sum=0,定义二维数组a[4][4]
b) 利用for循环将数组进行赋值
c)写出左下三角元素和的公式
(3)程序框图
(4)问题及解决办法
问题:
该题目我定义了二维数组,可是在输入数组的数字时,我写了a[i],但是编译时却不显示存在问题
解决办法:认真检查一遍又一遍之后发现并解决了问题
#注:该题也可用条件语句进行求下三角元素和
4 7-4整数序列中出现次数最多
(1)实验代码
#include<stdio.h>
int main(){
int i,j,n;
int b[1000]={0},k=0,f=1,;
scanf("%d",&n);
int a[n];
for(i=0;i<n;i++){
scanf("%d",&a[i]);
}
for(i=0;i<n;i++){
for(j=0;j<i;j++){
if(a[i]==a[j]){b[j]++;break;}
}
if(f==1){b[i]++;}
}
int max=b[0];
for(i=1;i<n;i++){
if(b[i]>max)
{max=b[i];k=i;}
}
printf("%d %d",a[k],max);
return 0;
}
(2)设计思路
a)定义整形变量i j n,因为0<N<=1000,所以需要定义b[1000]并初始化,定义k与f并初始化
b)对n进行赋值并定义数组a[n]
c)利用for循环,将i与n建立关系并对a[i]赋值
d)利用两个for循环,找出相等的数字并计算出个数
e)设数字b[0]为最大值,依次向下比较,实现下脚标的互换,计算出数字出现最多的次数
(3)流程图
(4)问题及解决办法
问题1:
由于大括号过多,不小心把输出打入到循环里了,后来仔细检查发现了问题所在
问题2:
break与前面用;连接,而不是,
二
coding上传截图:
coding地址:https://git.coding.net/simalang/14-15pta.git
三
个人总结:
主要学习了有关于一维数组,二维数组相关定义,初始化,利用for循环进行赋值与输出等问题,以及排序及冒泡法则的运用等等,我觉得难点在于例题与pta中作业程序不是特别好理解,有人讲的话一开始是记得的,但是时间一长,或者不复习就忘记了,所以对我来说课下复习是最为关键的,另外我还要更细心一点,经过作业之后发现有很多不该犯的细节错误,我会通过练习去改正
四
点评作业:1:http://www.cnblogs.com/zxwd/p/7966928.html
2:http://www.cnblogs.com/SR1011/p/7965948.html
3:http://www.cnblogs.com/sun-na-/p/7875394.html
截图:1
2
3
表格与折线图: