1. 程式人生 > >C高級第二次作業

C高級第二次作業

二次 net sda 錯誤調試 das src table cnblogs fga

PTA作業第一部分

6-7 刪除字符串中數字字符(10 分)

刪除一個字符串中的所有數字字符。

函數接口定義:

void delnum(char *s);

其中 s是用戶傳入的參數。 函數的功能是刪除指針 s所指的字符串中的所有數字字符。
裁判測試程序樣例:

#include "stdio.h"
void delnum(char *s);
int main ()
{ char item[80];
gets(item);
 delnum(item);
 printf("%s\n",item);
 return 0;
}

/* 請在這裏填寫答案 */

輸入樣例:

a0bc+d496df

輸出樣例:

abc+ddf

1.設計思路:

(1).題目算法描述
第一步:定義i,j 並初始化為0
第二步:遍歷s
第三步:判斷s中每個元素是否為數字如果是數字則覆蓋此元素
第四步:將s的最後一個元素歸零

(2).流程圖
技術分享圖片

2.實驗代碼

void delnum(char *s)
{
    int i = 0,j = 0;
    while(s[i] != ‘\0‘) {
        if (!(s[i] >= ‘0‘ && s[i] <= ‘9‘)) {
            s[j++] = s[i];
        }
        i++;
    }
    s[j] = ‘\0‘;
}

2.錯誤調試

答案正確

技術分享圖片

6-8 統計子串在母串出現的次數(10 分)

編寫一個函數,該函數可以統計一個長度為3的字符串在另一個字符串中出現的次數。例如,假定輸入的字符串為:asdasasdfgasdaszx67asdmklo,字符串為:asd,則應輸出n=4。。

函數接口定義:

int fun(char *str,char *substr);

其中strsubstr是用戶傳入的參數。函數統計substr指針所指的字符串在str指針所指的字符串中出現的次數,並返回次數。

裁判測試程序樣例:

#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;
}


/* 請在這裏填寫答案 */

輸出樣例:

n=4

1.設計思路:

(1).題目算法描述
第一步:定義i,j , k, n並初始化為0
第二步:從母串開始遍歷
第三步:母串的每個字符串與子串進行比較
第四步:當子串遍歷完的時候統計次數用的n加一
第五步:返回n

(2).流程圖

2.實驗代碼

int fun(char *str,char *substr)
{
    int i=0,j=0,k=0,n=0;
    for(i=0;str[i]!=‘\0‘;i++)//從母串開始遍歷
    {
        for(j=i,k=0;str[j]==substr[k];j++,k++)//每次遍歷的當前字符串都要和子串的第一個字符進行比較把子串遍歷完次數加一
        {
            if(substr[k+1]==‘\0‘)
            {
                n++;
            }
        }
    }
    return n;
}

2.錯誤調試

答案正確

技術分享圖片

簡易量化付出表格

日期代碼行數代碼時間(min)博客字數博客時間(min)
3/26443571580

C高級第二次作業