• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • YouClaw
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

y9

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

c语言数组作业

一:PTA实验作业

题目1:字符串的冒泡排序

1.提交列表:

 

2.设计思路:

 定义二维数组a作为输入的需要排序的数组,数组m作为交换的中间变量,利用冒泡排序法为二维数组排序。

使用strcpy函数交换两个数组,利用strcmp函数比较两个字符数组的大小。

流程图:

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

之前不理解题意,以为排序是按字符串中的字符个数排序,一直用strlen比较。

后来想通了,是按照字符串中的英文单词的大小排序,用到strcmp函数。

 

题目2:组个最小数

1.提交列表:

2.设计思路:

定义数组a,b

a存储输入的0到9的各个数字的数量

b存储数字0到9(重复的),用for循环给b赋值

for(i=0;i<10;i++)一共0到9有10个数字
     for(j=0;j<a[i];j++)
       b[k++]=i;
此时数组b中按0到9的顺序排列。

再用while(b[0]==0)  交换b[0],b[ i ],i为不为0的值。解决b中首位为0的情况。

输出数组b。

流程图:

 

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

输出的时候格式错误,题目要求输出数字之间没有空格,把输出时%d后的空格去掉就行了。

 

题目3:Left-pad

1.提交列表:

2.设计思路:

定义数组a,整型变量n,字符x,o,p,输入a,n,x,o,p。

scanf("%d%c%c%c",&n,&p,&x,&o);
 gets(a);        输入n,p,x,o,输入数组a。

n和x分别为填充结果字符串的长度和用于填充的字符。

p和o用于空格和换行的输入,是为了避免输入的空格变成了x的值,输入的换行变成了数组a的值,导致数组a无法输入。

接下来分三种情况:n>strlen(a),先循环输出字符x,再输出数组a。

                                 n==strlen(a),直接输出数组a。

                                 n<strlen(a),输出数组a的最后n个字符。

流程图:

 

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

 

最大N,长度超过N的字符串运行超时,我猜测是数组a的长度不够,果然增加了数组a的长度之后就过了。

 

 

二、同学代码结对互评

我的代码:

互评同学代码:

我和同学代码不同在哪里?有哪些各自优势?你更喜欢哪种代码风格?

我的代码通过调用函数去找局部最大值,在for循环条件里就把边界元素排除掉,if条件是该元素大于周边元素。

彦婵的代码是把所有需要考虑的因素都放在if条件里,循环的次数更多。

我更喜欢我的代码风格,虽然没有彦婵的代码简短,但整体结构清晰。

 

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

 

 

 

四、本周学习总结

1.你学会了什么?

1.1数组的定义和引用

定义:一维数组:类型名  数组名  【数组长度】

          二维数组:类型名   数组名  【行长度】【列长度】

数组名表示该数组所分配连续内存空间的第一个单元的地址,即首地址。

引用:只能引用单个数组元素,而不能一次性引用。

数组下标从0开始,下标不能越界。

1.2一维数组的初始化

类型名 数组名 【数组长度】 = {初值表};

例如int a[10]={1,2,3,4,5,6,7,8,9,10};

部分初始化后其余元素均为0。

1.3二维数组的初始化

类型名   数组名  【行长度】【列长度】=  {  {初值表1},{初值表2},.........};

1.4字符串的初始化

char str[6]={'a','b','c','d','e','\0'};

 或char str[6]={"abcde"};

或char str[6]="abcde";

1.5字符串的注意点

字符串由有效字符和字符串结束符‘\0'组成。

单个初始化字符串时,结束符不能省略。

 

字符串输入:1.scanf("%s", ),遇空格终止

                     2.gets()直接吸收整个字符,遇‘\n’终止

                     3.用循环输入

字符串输出:1.printf("%s", ),输出一整个字符串。

                      2.puts()和printf的区别是:输出之后会自动换行。

1.6常用的字符串处理函数

strlen(str):计算一个字符串的有效长度,即'\0'之前的字符个数

strcpy(s1,s2):将字符串2赋值给字符串1,返回s1

strcar(s1,s2):字符串连接函数,将s2连接到s1的后面,返回s1

strcmp(s1,s2):比较两个字符串的大小,返回值为0表示相等,返回值>0即s1>s2,返回值<0即s1<s2。

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

对一些稍微复杂的字符串应用不太熟练

对一些pta题目找不到解题思路

部分正确的题目找不到错误原因

 

posted on 2017-12-27 20:03  y9  阅读(480)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3