• 实验九—指针1


    /*下列程序在数组中同时查找最大元素和最小元素的下标,分别存放在 main()函数的
    max 和 min 变量中。要求:根据运行结果分析程序和填空,并注释说明填充依据*/
    #include <stdio.h>
    void findByPoint(int *, int, int *, int *); /*其实是老师偷懒,应该是(int *a,int n,int *max,int *min)*/
    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和min1之前不是加"*", &max1是地址*/
        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); /*由于在最开始定义的只是普通的数值,所以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;
            if (a[i] < a [*min])/*求最小值*/
            *min=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;
            if (a[i] < a [min])/*求最小值*/
            min=i;
        }
        printf("数组b最大和最小元素下标是%d,%d
    ", max, min);
    }
    /*输入一行字符,要求用自定义的函数void f(char *line)统计
    和输出字符串中数字字符、英文字符和其他字符的个数*/
    #include <stdio.h> 
    #include <string.h> 
      
    void count(char s[],int *pdight,int *pletter,int *pother) 
    /*自定义函数,指针变量是dight,letter,other*/
    { 
        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() 
    { 
      printf("请输入一行字符:");
      char s[100]; 
      int dight=0; 
      int letter=0; 
      int other=0; 
      gets(s); 
      count(s,&dight,&letter,&other); /*&.....是地址*/
     
       printf("数字字符有 %d个,英文字母有 %d个,其它字符有 %d个 
    ",dight,letter,other); 
     
       return 0; 
    }
    /*编程判断输入的一串字符是否为“回文”。所谓“回文”,是指顺读和倒读都一样的字符串。
    如“XYZYX”和“xyzzyx”都是“回文”。要求使用指针变量判断字符串是否是回文。*/
    #include<stdio.h>
    #include<string.h>
    void main()
    {
        char s[40];
        char *p,*q;/*指针变量p,q*/
        int len,flag;
        gets(s);/*从输入得到一个字符串,遇回车结束,允许带空格*/
        len  =strlen(s);/*strlen(s)计算的是数组s[]中字符串的长度*/
        p=s;/*指向s头部*/
        q=s+len-1;/*指向s尾部*/
        flag=1;
        while(p<q)/*当p地址小于q地址时,循环执行括号内的语句*/
        {    if(*p==*q){p++,q--;}/*判断首尾两个字符是否相等,如果相等,p地址加1,q地址减1*/
             else{flag=0;break;} 
        }
        if(flag)printf("YES
    ");
        else printf("No
    ");
    }
  • 相关阅读:
    【转】CentOS8新特性
    【转】Python 库打包分发(setup.py 编写)简易指南
    【转】Python3的venv虚拟环境操作(Linux)
    【转】Qt绘图之QGraphicsScene QGraphicsView QGraphicsItem详解
    【转】Qt 积累
    webapi 参数传递详解
    WPF 字体图标样式
    asp net core mvc 跨域ajax解决方案
    NPOI导出Excel封装
    XML序列化CDATA
  • 原文地址:https://www.cnblogs.com/xym0914/p/3411787.html
Copyright © 2020-2023  润新知