第二次作业

Posted 计科17-4班侯宇则

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第二次作业相关的知识,希望对你有一定的参考价值。

6-7 删除字符串中数字字符
1.设计思路
(1)第一步:了解指针的用法;
第二步:根据题意编写函数;
第三步:用两个指针,遇到数字字符不动,遇到非数字字符存入。
(2)流程图

2.实验代码

#include "stdio.h"
void delnum(char *s);
int main ()
{ char item[80];
gets(item);
 delnum(item);
 printf("%s\\n",item);
 return 0;
}
void delnum(char *s){
    int i=0,j=0;
    for(i=0,j=0;*(s+i)!=\'\\0\';i++)
    {
    if(s[i]<\'0\'||s[i]>\'9\')
    {
    s[j]=s[i];
    j++;
    }
    }
    s[j]=\'\\0\';
}

3.本题调试过程碰到问题及解决办法
错误信息1:无
错误原因:无
改正方法:无
git地址:https://coding.net/u/zhong123456/p/pta2/git/blob/master/1?public=true

6-8 统计子串在母串出现的次数
1.设计思路
(1)第一步:根据已知题意,观察已给程序,了解题中各个参数的意义。
第二部;设计简单的函数,执行题中所需功能。
第三部:借用strlen()函数统计字符串长度,再进行判断。
(2)流程图

2.实验代码

#include<stdio.h>
int fun(char *str,char *substr);
int main()
{ char str[81]="asdasasdfgasdaszx67asdmklo",substr[4]="asd";
 int n;
 n=fun(str,substr);
 printf("n=%d\\n",n);
 return 0;
}
int fun(char * str, char * substr)
{
    unsigned int i, n = 0;
    for(i = 0; i < strlen(str); i++)
        if((str[i] == substr[0]) && (str[i + 1] == substr[1]) && (str[i + 2] == substr[2]))
            ++n;

    return n;
}

3.本体调试过程碰到问题及解决办法
错误信息1:无
错误原因1:无
git地址:https://coding.net/u/zhong123456/p/pta2/git/blob/master/2?public=true

6-9 字符串中除首尾字符外的其余字符按降序排列
1.设计思路
(1)第一步:根据已知题意,观察已给程序,了解题中各个参数的意义。
第二部;设计简单的函数,执行题中所需功能。
第三部:上机运行程序,检查程序对错。
(2)流程图

2.实验代码

#include <stdio.h>
int fun(char *s,int num);
int main()
{
 char s[10];
 gets(s);
 fun(s,7);
 printf("%s",s);
 return 0;
 }
 int fun(char *s,int num){
    int i,j;
     char t;
    for(i=1;i<num-1;i++) {
        for(j=num-2;j>i;j--){
            if(*(s+j)>*(s+j-1)){
                t=*(s+j);
                *(s+j)=*(s+j-1);
                *(s+j-1)=t;
             }
        }
    }
}

3.本体调试过程碰到问题及解决办法
错误信息1:无
错误原因1:无
git地址:https://coding.net/u/zhong123456/p/pta2/git/blob/master/3?public=true

7-1 输出学生成绩
1.设计思路
(1)第一步:根据已知题意,观察已给程序,了解题中各个参数的意义。
第二部;设计简单的函数,执行题中所需功能。
第三部:上机运行程序,检查程序对错。
(2)流程图

2.实验代码

#include<stdio.h>
#include<stdlib.h>
int main ()
{
    int n,i,*p;
    double max=0,min=999,average=0;
    scanf("%d",&n);
    if((p=(int*)calloc(n,sizeof(int)))==NULL){
    exit(1);
    }
    for(i=0;i<n;i++)
   ![](https://images2018.cnblogs.com/blog/1358214/201804/1358214-20180408122151518-446991032.png)

     scanf("%d",p+i);
        for(i=0;i<n;i++)
            average=average+*(p+i);
                for(i=0;i<n;i++)
        {

        if(*(p+i)>max)
            max=*(p+i);
        }
        for(i=0;i<n;i++){

        if(*(p+i)<min)
            min=*(p+i);
            }

            free(p);
        printf("average = %0.2f\\n",average/n);
        printf("max = %0.2f\\n",max);
        printf("min = %0.2f\\n",min);
}

3.本体调试过程碰到问题及解决办法
错误信息1:多种错误。
错误原因1:没有用明白指针
git地址:https://coding.net/u/zhong123456/p/pta2/git/blob/master/4?public=true

这两周来所有PTA作业中题目所使用的知识点:
1.字符串与指针的关系
2.函数指针调用函数
3.指针作函数参数
4.了解字符型函数
请用表格和折线图呈现你本周(3/26 8:00~4/9 8:00)的代码行数和所用时间、博客字数和所用时间

以上是关于第二次作业的主要内容,如果未能解决你的问题,请参考以下文章

第二次在对话框中膨胀片段时出错

第二次作业电梯编程题测试结果

第二次作业

第二次作业

OO第二次博客作业

第二次作业——题目一