实验九

#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); //确定自定义函数findByPoint的元素
    printf("数组a最大和最小元素下标是%d,%d\n", max1, min1);

    int max2=0, min2=0,b[]={3,4,71,9,2,7,4,2,6,90};
    find(a,10,max2,min2); //确定自定义函数find的元素
    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; //找到最大值的下标
        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\n", max, min);
}

  

//输入一行字符,要求用自定义的函数void f(char *line)统计和输出字符串中数字字符、英文字符和其他字符的个数
#include<stdio.h>
int main()
{
	void f(char *line,int *digit,int *letter,int *other);
	int i=0,digit,letter,other;
	char ch,str[80];
	printf("enter charaters:");
	ch=getchar();
	while(ch!='\n'){
		str[i]=ch;
		i++;
		ch=getchar();
	}
	str[i]='\0';
	f(str,&digit,&letter,&other);
	printf("digit=%d letter=%d other=%d\n",digit,letter,other);

	return 0;
}
void f(char *line,int *digit,int *letter,int *other)
{
	*digit=*letter=*other=0;
	while(*line!='\0'){
		if(*line>='0'&&*line<='9')
			(*digit)++;
		else if((*line>='a'&&*line<='z')||(*line>='A'&&*line<='Z'))
			(*letter)++;
		else
			(*other)++;
		line++;
	}
}

  

//编程判断输入的一串字符是否为“回文”。所谓“回文”,是指顺读和倒读都一样的字符串。如“XYZYX”和“xyzzyx”都是“回文”。要求使用指针变量判断字符串是否是回文
#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");
}

  

 

posted @ 2013-11-10 22:35  刘丽娜123456  阅读(121)  评论(0编辑  收藏  举报