第十四,十五周作业

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

表格与折线图:

posted on 2017-12-03 19:53  司马朗  阅读(149)  评论(4编辑  收藏  举报

导航