C语言博客作业--一二维数组

一、PTA实验作业

题目1:7-8 加法口诀表

1. 本题PTA提交列表

2. 设计思路

  • 1.定义repeat表示运算次数,n为限度,其他循环变量
  • 2.输入repeat,在repeat循环内输入n,输出加号
  • 3.for(i=1;i<=n;i++){
    if(i!=n)
    printf("%-4d",i);
    else
    printf("%d",i);
    }输出横向的递增数
  • 4.for(i=0;i<n;i++){
    for(j=0;j<=i;j++){
    a[i][j]=k;
    printf("%-4d",a[i][j]);
    k=k+1;
    }
    printf("%d\n",k);
    if(i==0)k=2;
    else
    k=a[i][1];
    }
    k=1;
    } 输出口诀表
  • 5.返回0;

3.代码截图

4.本题调试过程碰到问题及PTA提交列表情况说明

  • 第一遍的时候没有控制循环,输出的是个长方形的口诀表。
  • 第二遍改变循环的条件就可以按题意格式输出,但是计算出错。
  • 第三遍改变了k的值,使得它的输出结果可以递增,但是第二行依然出错,同样是因为k的值赋错
  • 第四遍当repeat为1的时候输出正确,为2以上就又出错,因为每次repeat循环没有将k重新赋初值0;

题目1:7-9 判断上三角矩阵

1. 本题PTA提交列表

2. 设计思路

  • 1.定义正整数T,i,j,k循环变量 ,还有flag
  • 2.输入T,n
  • 3.for(k=1;k<=T;k++){
    for(i=0;i<n;i++)
    for(j=0;j<n;j++){
    scanf("%d ",&a[i][j]);
    if(j<i){
    if(a[i][j]==0)flag++;
    }
    } 输入矩阵的同时统计下三角0的个数
  • 4.if(flag==n*(n-1)/2)printf("YES\n");
    else
    printf("NO\n");
    flag=0;
    } 判断是否上三角矩阵
  • 5.返回0;

3.代码截图

4.本题调试过程碰到问题及PTA提交列表情况说明

  • 这道题在PTA上打的时候一直出现一个问题,就是我的输出判断是正确的,但是一定要先打任意一个阿拉伯数字才会输出答案,这令我非常疑惑,后来问了学长才知道,这是因为我的scanf语句中引号内加了空格才导致的。
  • 第二个问题是当我要判断多个数组时,第二个以上的数组输出错误,仔细检查发现是因为scanf("%d",&n);语句写在了循环外。

题目1:7-3 出生年

1. 本题PTA提交列表

2. 设计思路

  • 1.定义y是出生年,n,i,j,k,l,flag=0用于循环 ,int year存放年数, int a[4]数组
  • 2.令year的初值为出生年
  • 3.for(i=0;i>=0;i++){
    for(j=0;j<4;j++){
    a[j]=y%10;y=y/10;
    } 第一个循环将出生年的各位数字存放在数组中
    for(k=0;k<n;k++)
    for(l=k+1;l<n;l++){
    if(a[k]a[l]){
    flag+=1;break; 遇到数字相同说明不符条件,flag++
    }
    if(flag!=0)break;
    }
    if(flag
    0)break;跳出循环的条件,也是满足题意时的年份
    else {
    y=year;y=y+1;year=y;flag=0;
    }
    }
  • 7.输出年龄,年份。

3.代码截图

4.本题调试过程碰到问题及PTA提交列表情况说明

  • 1.这道题打代码的过程中,我对自己想打的思路清楚,多种错误中拿不到的分数是因为当要求年份不同数字为3时,我的代码遇到四个不同数字的年份就输出了。这个问题我还没解决。

二、截图本周题目集的PTA最后排名

三、同学代码结对互评

1.互评同学名称

何君霞

2.我的代码、互评同学代码截图

君霞的代码

我的代码

3.我和同学代码不同在哪里?有哪些各自优势?你更喜欢哪种代码风格?如果同学代码有错的也请帮忙指出来哪里出问题

  • 1.我和她的第一个不同是我的代码定义的是二维数组,而她的代码是一维数组,
  • 2.我们的思路是一样的,都用的是for循环,但是在最后输出的环节中,她的代码明显比我简洁,因为她定义了一个k赋值为b[i]的值,然后输出++k,而我的代码则杂糅的多,我是输出 j<=i 中的 a[i][j],同时控制还需要一堆条件限制。所以我更喜欢她的代码。

四、本周学习总结

1.你学会了什么?

1.1 C中如何存储字符串?

存放在一堆字符数组中
static char s [6]={'h','a','p','p','y','\0'}

1.2 字符串的结束标志是什么,为什么要结束标志?

结束标志是‘\0’,判断是否结束字符串的操作

1.3 字符串输入有哪几种方法?

gets(a)
scanf("%s",a)

1.4 数字字符怎么转整数,写个伪代码?

char c;
int n;
c = getchar();
n = c;
printf(%d,n);

3.期中考试小结

3.1 你认为为什么没考好?

我对基础知识记忆不牢,而且我还不太会进制转换之类,当然最重要的是我能力不够,我的编程题写的一塌糊涂。经常是写到某一步了发现前面有些东西忘写了。我现在有些跟不上进度,常常老师讲的本周的内容,我在赶上周的作业,这影响到了我的学习。

3.2 罗列错题。

选择题
第7题,

错在计算是失误
填空题

第三个空不该填x
改错题

主函数不需要return语句
编程题

复数不会算

3.3 下半学期要怎么调整C的学习

首先要赶上进度,然后保持好节奏,有时间去博客看看别人写的代码,学习更多的思路。

posted @ 2017-12-03 22:27  一叶落而秋将至  阅读(346)  评论(3编辑  收藏  举报