P003 统计字符串中数字字符出现的次数 ★

03-程序设计题 飞快学 1201浏览

所属年份:2010.9;2011.9;2012.3;
给定程序中,函数fun的功能是:统计形参s所指的字符串中数字字符出现的次数,并存放在形参t所指的变量中,最后在主函数中输出。

例如,若形参s所指的字符串为”abcdef35adgh3kjsdf7″,则输出结果为4。

#include <stdio.h>

void  fun (int *a, int *n)
{


}

main( )
{
    int aa[1000], n, k ;
    fun ( aa, &n ) ;
    for ( k = 0 ; k < n ; k++ )
        if((k + 1) % 10 == 0)
            printf("\n") ;
        else
            printf("%5d", aa[k]) ;
}

【考点分析】
本题考查:if语句,用来判断能被7整除或者能被11整除,但是又不能同时被7和11整除的数,在这里充分理解”逻辑与”和”逻辑或”的区别;for循环语句的循环变量用来控制取值范围。

【解题思路】
该题需要运用循环判断结构来实现,其中循环语句比较容易,只要确定循环变量的范围即可,下面我们来看判断语句,题目要求找出能被7或11整除,但不能同时被7和11整除的所有整数。能同时被7和11整除的整数一定能被77整除,且不能被77整除的数不一定就是能被7或11整除的数所以可得出程序中的if()语句。注意:(i%7==0||i%11==0)两边必须要有小括号。

【参考答案】

void  fun (int *a, int *n)
{
    int i,j=0;
    for(i=1; i<=1000; i++)
        if((i%7==0||i%11==0)&&i%77!=0)
            a[j++]=i;
    *n=j;
}