C语言博客作业--数据类型

一、PTA实验作业

题目1:倒顺数字串

1. 本题PTA提交列表

2. 设计思路

  • 第一步:定义整形变量n,i
  • 第二步:输入用户给定的数值n
  • 第三步:for(i=1;i<n;i++) printf("%d",i);putchar(' ');
  • 第四步:if(i==n) printf("%d",n);
  • 第五步:for(i=n-1;i>=1;i--) putchar(' '); printf("%d",i);

3.代码截图

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

在末尾的数后面没有空格,而我跟了一个空格,格式错误,看了马上改过来了

题目2:发红包

1. 本题PTA提交列表

2. 设计思路

  • 第一步:定义整型变量i为金额,hurd=0,fifty=0,twenty=0,ten=0,five=0,twe=0,one=0;
  • 第二步:输入金额i,要是使张数最少,则金额面大的应越多。
  • 第三步:hurd=i/100;i=i%100;fifty=i/50;i=i%50;twenty=i/20;i=i%20;ten=i/10;i=i%10;five=i/5;i=i%5;twe=i/2;i=i%2;one=i;
  • 第四步:输出张数情况,输出是要用%3d使使数额对齐。

3.代码截图

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

本题错了三次的原因是在于输出是的:用了中文的符号,使得答案错误。

题目3:判断合法标识符

1. 本题PTA提交列表

2. 设计思路

  • 第一步:定义整形变量repeat,i,flag和count来判断字符的合法性;定义字符型变量ch
  • 第二步:输入repeat,i=1;
  • 第三步:ch=getchar(); 判断(ch=='_'||(ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z'))若是进行第四步;不是则进行第六步;
  • 第四步:do{
    ch=getchar();
    if(ch'_'||(ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z')||(ch>='0'&&ch<='9')||ch'\n') {count=count;}
    else {flag++;}
    } while(ch!='\n');
  • 第五步:如果flag==0;则表示没有不合法的,输出Yes;否则输出No;
  • 第六步:输出No
  • 第七步:当i<=n时,i++,返回第三步

3.代码截图

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

明明感觉全是对的啊,然后提示答案错误,我做了一天多,后面还是借鉴了同学的代码。

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

三、本周学习总结

1.你学会了什么?

1.1 一维数组如何定义、初始化?

一维数组就是定义成int a[n];n为数值,必须先给定一个n才能定义;如果没有给定数值,则默认数组内的值全为0;

1.2 一维数组在内存中结构?可画图说明。数组名表示什么?

一维数组的下标从0开始到n-1;数组名是一个指针,表示数组的首元素的地址

1.3 为什么用数组?

数组大大简化了定义变量的数量,使程序的可读性更高

1.4 介绍选择法、冒泡法、直接插入排序如何排序?伪代码展示.

1.选择法

  • 第一步:给定一个n,定义数组a[n],number,i,k,j;
  • 第二步:i=0,i<n,输入a[i];
  • 第三步:将number=a[0];
  • 第四步:k=1;k<n-1;k++, 比较number与a[k]的大小,如果number>a[k],则number=a[k];min=j;
  • 第五步:分别排序

2.冒泡法

  • 第一步:给定n个数,定义数组a[n],i,k,number;
  • 第二步:for(i=0;i<n;i++)
    for(k=i;k<n;k++){
    if(a[k]>a[k+1]) {number=a[k+1];a[k+1]=a[k];a[k]=a[k+1]
  • 第三步:排序即可

3.直接插入法
for 1 to n{
num=a[i]; for k=k-1 to k>=0且k>a[k]
a[k+1]=a[k]
a[k+1]=num;}

1.5 介绍什么是二分查找法?它和顺序查找法区别?

二分查找法需要那一些数按顺序排列,然后从中间插入,判断大小在取二分段;重复
顺序查找法师一个一个比较然后再插入

1.6 二维数组如何定义、初始化?

a[i][j] i,j是已有的数,i为行,j为列;若没有给定数值则默认全为0

1.7 矩阵转置怎么实现?方阵中:下三角、上三角、对称矩阵的行标i列标j的关系?请说明。

交换i j 数值及num=a[i][j],a[j][i]=num,a[i][j]=a[j][i]

1.8 二维数组一般应用在哪里?

例如表格式,矩阵式的适用

2.本周的内容,你还不会什么?

pta的写个tokenizer吧还是不懂,还有第八题的感觉不知道错在哪里,第八题我弄在了PTA题目三那里

posted on 2017-11-26 13:29  ifcan  阅读(258)  评论(5编辑  收藏  举报

导航