• 实验9 指针1


    1.程序填空:下列程序在数组中同时查找最大元素和最小元素的下标,分别存放在 main()函数的max 和 min 变量中。

    #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); //自定义函数,指针变量是a,max,min,&max1是地址。;
        printf("数组a最大和最小元素下标是%d,%d\n", max1, min1);
    
        int max2=0, min2=0,b[]={3,4,71,9,2,7,4,2,6,90};
        find(b,10,max2,min2); //自定义函数,指针变量是b,max,min,&max2是地址。
        printf("数组b最大和最小元素下标是%d,%d\n", 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; //*max指的是max的值,把i的值给*max
            if (a[i] < a [*min])*min=i; //*min指的是min的值,把i的值给*min
        }
    }
    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; //max是变量,i的值给max
            if (a[i] < a [min])min=i; //min是变量,i的值给min
        }
        printf("数组b最大和最小元素下标是%d,%d\n", max, min);
    }

    2、输入一行字符,要求用自定义的函数void f(char *line)统计和输出字符串中数字字符、英文字符和其他字符的个数。
    程序运行结果

    #include <stdio.h> 
    #include <string.h>    //自定义一个字符串函数
    void count(char s[],int *pdight,int *pletter,int *pother) 
    {                            //     
     
        int n; 
     
        int i; 
     
        n=strlen(s); 
     
        for(i=0;i<n;i++){ 
        
            if(s[i]>=65&&s[i]<=122) 
            (*pletter)++; 
            else if(s[i]>=48&&s[i]<=57) 
            (*pdight)++; 
            else 
            (*pother)++; 
        } 
    } 
      
    int main() { 
     
        char s[100]; 
     
        int dight=0; 
     
        int letter=0; 
     
        int other=0; 
     
        gets(s); 
     
        count(s,&dight,&letter,&other); 
     
        printf("%d %d %d \n",dight,letter,other); 
     
        return 0;
    }

    3、编程判断输入的一串字符是否为“回文”。所谓“回文”,是指顺读和倒读都一样的字符串。如“XYZYX”和“xyzzyx”都是“回文”。

    #include<stdio.h>
    int main(void)
    {
        int i,n;
        int x,y;
        x=0,y=0;
        printf("enter n:");
        scanf("%d",&n);
        //定义数组
        int a[80];
        //输入数组
        for(i=1;i<n;i++)
        {
            printf("enter a[]:");
            scanf("%d",&a[i]);
        }
        for(x=0,y=n;x<y;x++,y++)
        {
            int *a,*b;//用指针判断是否为回文
            a=&a[x];
            b=&a[y];
            if(a!=b)
                break;
        }
        if(x>=y)
            printf("是回文");
        else
            printf("不是回文");
        return 0;
    }

  • 相关阅读:
    C语言初学者应该知道的(一)
    【文摘】中国IT从业者的职业——软件项目管理师
    只有荒凉的沙漠,没有荒凉的人生 ——黄渤
    定时更改桌面背景
    C语言初学者应该知道的(二)
    整理那些书
    Linux操作系统———李纳斯
    【c笔记】一个很好的编程题
    【c 笔记】windows的wsprintf不支持浮点型的%f
    【文摘】中国IT从业者的职业——软件测试员
  • 原文地址:https://www.cnblogs.com/tangxumin25/p/3417010.html
Copyright © 2020-2023  润新知