第一周作业

Posted on 2018-03-25 20:52  杨雨鑫1  阅读(149)  评论(2编辑  收藏  举报

作业要求一
已完成
作业要求二

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)的代码行数和所用时间、博客字数和所用时间

Copyright © 2024 杨雨鑫1
Powered by .NET 9.0 on Kubernetes