实验9

1.

#include <stdio.h>
void findByPoint(int *, int, int *, int *);
void find(int *a, int n, int max, int min);
int main(void)
{
    int max1=0, min1=0, a[]={5,3,7,9,2,0,4,1,6,8};
    findByPoint(a,10,&max1,&min1);   //自定义函数 
    printf("数组a最大和最小元素下标是%d,%d
", max1, min1);

    int max2=0, min2=0,b[]={3,4,71,9,2,7,4,2,6,90};
    find(b,10,max2,min2);   //自定义函数 
    printf("数组b最大和最小元素下标是%d,%d
", max2, min2);
    return 0;
}
void findByPoint(int *a, int n, int *max, int *min)
{
    int i;
    *max=*min=0;
    for (i = 1; i < n; i++)
    {
        if (a[i] > a [*max])  *max=i; //把i的值给指针
        if (a[i] < a [*min])  *min=i; //把i的值给指针
    }
}
void find(int *a, int n, int max, int min)
{
    int i;
    for (i = 1; i < n; i++)
    {
        if (a[i] > a [max])max=i; //将i的值给max
        if (a[i] < a [min])min=i; //将i的值给min
    }
    printf("数组b最大和最小元素下标是%d,%d
", max, min);
}

2.统计输入的字符个数

#include<stdio.h>
void f(char*line,int*digit,int*letter,int*other)
{
    *digit=*letter=*other=0;   //初始化计数器
    while(*line!='')
    {
        if(*line>='0'&&*line<='9')
            (*digit)++;
        else if((*line>='a'&&*line<='z')||(*line>='A'&&*line<='Z'))
            (*letter)++;
        else
            (*other)++;
        line++;
    }
}
//主函数
int main()
{
    int i=0; //循环变量
    int    digit;  //记录数字个数
    int letter;  //记录字母个数
    int other;  //记录其他字符个数
    char ch;  //存放输入的单个字符
    char line[100];  //存放字符串
    printf("Enter charaters:");
    ch=getchar();  //获取一个字符
    while(ch!='
')
    {
        if(i<=99)
        {
        //循环获取字符
        line[i]=ch;  
        ch=getchar();
        i++;
        }
        else
        {
            printf("你输太多了");
        }
    }
    i++;
    line[i]='';  
    //调用计算函数
    f(line,&digit,&letter,&other);
    printf("数字个数=%d  字母个数=%d  其他字符个数=%d
",digit,letter,other);

    return 0;

}

原文地址:https://www.cnblogs.com/sally959/p/3417222.html