定义一个数组,输入10个字符串,每个字符串最长不超过80个字符,请编写一个程序完成下列功能:(用C语言写

(1)计算每个字符串的长度,求出每个字符串的长度并输出,每行输出不超过3个;
(2)调用下面给出的求字符串长度的函数,将每个字符串的长度存入该数组
(3)求平均字符串长度,并输出。
long countlen(char *p)
{ long n=0;
while(*p++ != ‘\0’){ n++; p++; }
return(n);
}

#include<stdio.h>
#include<stdlib.h>

long countlen(char *p)
{
    long n = 0;
    while(*p++ != '\0')
        n++;
    return n;
}

int main(void)
{
    int iStrNum, i;
    float fAveNum;
    long* aiCharNum = NULL;
    char** aacStr = NULL;

    printf("%s\n", "请输入字符串个数:");
    scanf("%d", &iStrNum);

    // 分配内存空间
    aiCharNum = (long*)malloc(sizeof(long)*iStrNum);
    aacStr = (char**)malloc(sizeof(char*)*iStrNum);
    for(i=0; i<iStrNum; i++)
        aacStr[i] = (char*)malloc(sizeof(char)*80);

    // 输入字符串
    for(i=0; i<iStrNum; i++)
    {
        printf("请输入第 %d 个字符串:\n", i + 1);
        scanf("%s", aacStr[i]);
        // 将每个字符串的长度存入数组
        aiCharNum[i] = countlen(aacStr[i]);
        //printf("字符串长度为:%d\n", aiCharNum[i]);
    }

    // 求字符串平均长度
    fAveNum = 0.0;
    for(i=0; i<iStrNum; i++)
        fAveNum += aiCharNum[i];
    fAveNum /= iStrNum;
    printf("字符串平均长度为:%.2f\n", fAveNum);

    // 释放内存空间
    for(i=0; i<iStrNum; i++)
        free(aacStr[i]);
    free(aacStr);
    free(aiCharNum);

    return 0;
}

温馨提示:答案为网友推荐,仅供参考