实验九-指针
#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; /*把i的值赋给*max;*/ if (a[i] < a [*min]) *min=i; /*把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); }
/*输入一行字符,要求用自定义的函数void f(char *line)统计和输出字符串中数字字符、英文字符和其他字符的个数。*/ #include<stdio.h> void count(char*s,int*digit,int*letter,int*other) { *digit=*letter=*other=0; while(*s!='\0'){ if(*s>='0'&&*s<='9') (*digit)++; else if((*s>='a'&&*s<='z')||(*s>='A'&&*s<='Z')) (*letter)++; else (*other)++; s++; } } int main() { int i=0,digit,letter,other; char ch,str[80]; printf("请输入一行字符:"); ch=getchar(); while (ch!='\n'){ str[i]=ch; i++; ch=getchar(); } str[i]='\0'; count(str,&digit,&letter,&other); printf("digit=%d letter=%d other=%d\n",digit,letter,other); return 0; }
/*编程判断输入的一串字符是否为“回文”。*/ #include<stdio.h> #include<string.h> void main() { char s[20]; char *p,*q; int len,flag; gets(s); len =strlen(s); p = s; q = s+len-1; flag=1; while (p<q) { if(*p==*q) {p++;q--;} else {flag=0;break;} } if (flag)printf("YES\n"); else printf("No\n"); }