作业要求一
已完成
作业要求二
1)C高级第一次PTA作业(1)
6-1 计算两数的和与差
1.设计思路
(1)主要描述题目算法
和两个相加,差两个相减
(2)流程图
2.实验代码
void sum_diff( float op1, float op2, float *psum, float *pdiff )
{
*psum=op1+op2;
*pdiff=op1-op2;
}
3.本题调试过程碰到问题及解决办法
没有问题。
6-2 拆分实数的整数与小数部分
1.设计思路
(1)主要描述题目算法
第一步:将浮点数x转化为整数型。
第二步:小数部分为浮点型-整数型。
(2)流程图
2.实验代码
void splitfloat( float x, int *intpart, float *fracpart)
{
*intpart=(int)x;
*fracpart=x-*intpart;
}
3.本题调试过程碰到问题及解决办法
最开始不知道怎么转化整数型;
经过上网查询弄明白的。
2)C高级第一次PTA作业(2)
6-1 在数组中查找指定元素
1.设计思路
(1)主要描述题目算法
第一步:使用for循环,
第二步:使用if语句
第三步:使用break跳出循环。
(2)流程图
2.实验代码
int search( int list[], int n, int x )
{
int j,t=-1;
for(j=0;j<n;j++)
{
if(list[j]==x)
{
t=j;
break;
}
}
return t;
}
3.本题调试过程碰到问题及解决办法
没问题。
6-2 找最大值及其下标
1.设计思路
(1)主要描述题目算法
第一步:使用for循环
第二步:使用if语句
第三步:赋值,将j赋给*b.
(2)流程图
2.实验代码
int fun(int *a,int *b,int n)
{
int j,t=0;
for(j=0;j<N;j++)
{
if(t<a[j])
{
t=a[j];
*b=j;
}
}
return t;
}
3.本题调试过程碰到问题及解决办法
没问题。
3)C高级第一次PTA作业(3)
6-1 最小数放前最大数放后
1.设计思路
(1)主要描述题目算法
第一步:使用for循环,输入几个数
第二步:定义max,min将arr[0]赋给max,min。
第三步:通过循环找出最大值最小值
第四步:交换。
(2)流程图
2.实验代码
void input(int *arr,int n)
{
int i;
for(i=0;i<=9;i++){
scanf("%d",&arr[i]);
}
}
void max_min(int *arr,int n)
{
int max,min,i,t,c,d;
max=arr[0];
min=arr[0];
for(i=0;i<=9;i++){
if(arr[i]>max){
max=arr[i];
c=i;
}
}
t=arr[c];
arr[c]=arr[9];
arr[9]=t;
for(i=0;i<=9;i++){
if(arr[i]<min){
min=arr[i];
d=i;
}
}
t=arr[d];
arr[d]=arr[0];
arr[0]=t;
}
void output(int *arr,int n)
{
int i;
for(i=0;i<=9;i++){
printf("%3d",arr[i]);
}
}
3.本题调试过程碰到问题及解决办法
最开始不是特别明白思路,经过同学讲解明白了。
6-2 指针选择法排序
1.设计思路
(1)主要描述题目算法
选择排序法。
(2)流程图
2.实验代码
void sort(int *x,int n)
{
int i,j,t,temp;
for(i=0;i<n-1;i++)
{
t=i;
for(j=i+1;j<n;j++)
{
if(*(x+t)<*(x+j))
t=j;
}
temp=*(x+i);
*(x+i)=*(x+t);
*(x+t)=temp;
}
}
3.本题调试过程碰到问题及解决办法
不懂选择排序法,经过上网查懂得选择排序法 是先找到最大或者最小的位置放在第一个位置,然后选择其次放在第二个位置,依次排序。
4)C高级第一次PTA作业(4)
6-1 判断回文字符串
1.设计思路
(1)主要描述题目算法
第一步:a=s字符个数
第二步:for循环,if语句,如果首尾相等就count++,继续循环
第三步:如果跳出循环count=a,返回true。
(2)流程图
2.实验代码
bool palindrome(char *s)
{
int a=strlen(s);
int m, n,count=0;
for (m = 0, n= a - 1; m < a, n >= 0; m++, n--)
{
if (*(s + m) == *(s + n))
{
count++;
}
}
if (count == a)
return true;
}
3.本题调试过程碰到问题及解决办法
上网查的字符个数。
6-2 使用函数实现字符串部分复制
1.设计思路
(1)主要描述题目算法
第一步:将t复制s上
第二步:求出s字符个数为c
第三步:for循环。
第四步:得到的新字符末尾为 '\0'.
(2)流程图
2.实验代码
void strmcpy(char *t, int m, char *s)
{
int a, b, c;
strcpy(s, t);
c = strlen(s);
for (a = m - 1; a>0; a--) {
for (b= a; b<c; b++) {
*(s + b - 1) = *(s + b);
}
}
*(s + c- m + 1) = '\0';
}
3.本题调试过程碰到问题及解决办法
不知道strcpy是复制的意思,上网查明白的。
要求三、学习总结和进度
1、总结两周里所学的知识点有哪些学会了?哪些还没有学会?
这两周学习了指针与数组,还有字符数组与指针。不是都特别熟练,应该多加练习。
2、将PTA作业的源代码使用git提交到托管平台上,要求给出上传成功截图和你的git地址。请注意git地址应是类似“https://git.coding.net/Dawnfox/wf4_2.git”这样的字符串且是可被访问者直接点击进行访问的链接。
GIT地址:https://git.coding.net/yangyuxin/77777.git
3、点评3个同学的本周作业(在作业中给出被点评同学博客的链接),并邀请3名同学点评你的作业,无点评作业(你的作业未被3人点评)/或者没有回复同学或老师的点评都倒扣该题分数。
于耀淞:http://www.cnblogs.com/jsjyys/p/8589997.html
徐铭博:http://www.cnblogs.com/xmb1547828350/p/8597402.html
姚舜禹:http://www.cnblogs.com/yaoshunyux/p/8641466.html
4、请用表格和折线图呈现你本周(3/12 8:00~3/26 8:00)的代码行数和所用时间、博客字数和所用时间