首页 > 学院 > 开发设计 > 正文

编程练习三

2019-11-11 05:27:41
字体:
来源:转载
供稿:网友


程序一、编写函数void count(char a[],char w[][10],int n,int b[])。功能是:统计w指向的数组中的n个单词在a指向的字符串中各自出现的次数(将非字母字符看作单词分割符),拧将统计结果依次保存在b指向的数组中。

#include <stdio.h>

#include <string.h>

#include <ctype.h>

 

void count(char a[], char w[][10], int n, int b[]);

 

int main()

{

    char a[100], w[10][10];

int b[100];

int n,i;

 

PRintf("Please inpu a string:/n");

scanf("%s", a);

printf("Please input the number of the Words:/n");

scanf("%d", &n);

    printf("Please input the words:/n");

for(i = 0; i < n; i++)

{

        scanf("%s", w[i]);

}

count(a, w,n,b);

 

    return 0;

}

 

void count(char a[], char w[][10], int n, int b[])

{

    int i, t;

int j = 0;

int k = 0;

int num = 0;

    int len_word;

int len_str = 0;

    

    for(i = 0; i < n; i++)

{

k = 0;

num = 0;

len_word = strlen(w[i]);

while(a[k] != '/0')

{

    len_str = 0;

j = 0;

if(isalpha(a[k]))

{   

while(a[k] == w[i][j] && a[k] != '/0')

{

len_str++;

k++;

j++;

}

}

if(len_word == len_str && !isalpha(a[k]))

{

num++;

}

            

k++;

}

b[i] = num;

}

 

for(i = 0; i < n; i++)

{

printf("%s=%d  ", w[i], b[i]);

}

printf("/n");

}

 

 

程序二、编写函数int stat(int a[],int n,int c[][2])。a指向的数组中保存了由n个1位整数组成的数列(n为偶数)。函数从前至后依次将a数组中每两个相邻元素拼成一个不超过2位的整数,从而生成有n/2个元素组成的整数数列;统计该数列中不同整数各自出现的次数,并将统计结果保存到c指向的二维数组中。函数返回不同整数的个数。

#include <stdio.h>

 

int start(int a[], int n, int c[][2]);

 

int main()

{

int a[100];

int c[100][2];

int n, i;

 

printf("Please input a number:");

scanf("%d", &n);

 

if(n % 2 != 0)

{

printf("Please input a new number:");

scanf("%d", &n);

}

printf("Please input the numbers:/n");

for(i = 0; i < n; i++)

{

scanf("%d", &a[i]);

}

 

    start(a, n, c);

    

    return 0;

}

 

int start(int a[], int n, int c[][2])

{

int i;

int j = 0;

int num = 0;

 

for(i = 0; i < n; i +=2)  //组成n/2个数

{

          c[j++][0] = a[i] * 10 + a[i+1];

}

 

for(i = 0; i < n/2; i++)      //统计出现的次数

{

        for(j = 0; j < n/2; j++)

{

if(c[i][0] == c[j][0])

{

num++;

}

}

c[i][1] = num;

num = 0;

}

 

for(i = 0; i < n/2; i++)   

{

printf("%5d", c[i][0]);

printf("%5d", c[i][1]);

printf("/n");

}

printf("/n");

    

}


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表