第七章实验

 三个整数排序

一、实验目的

  1. 掌握指针的概念,会定义并使用指针变量。
  2. 学会使用数组的指针和指向数组的指针变量。
  3. 学会使用字符串的指针和指向字符串的指针变量。
  4. 学会使用指向函数的指针变量。

二、实验内容

1、输入三个整数,用指针实现从大到小排序

(1)编程提示
本质上是两个数的比较。三个数比较时,a和b比较,a和c比较,b和c比较。

输入样例:

88 22 55

输出样例:

88 55 22

代码: 

#include 
void swap(int *a,int *b)
{
    int t;
    t=*a;
    *a=*b;
    *b=t;
}
void exchange(int *p1,int *p2,int *p3)
{
    if(*p1<*p2)
        swap(p1,p2);
    if(*p1<*p3)
        swap(p1,p3);
    if(*p2<*p3)
        swap(p2,p3);
}
int main()
{
    int a,b,c;
     scanf("%d %d %d",&a,&b,&c);
    int *p1=&a,*p2=&b,*p3=&c;
     exchange(p1,p2,p3);
      printf("%d %d %d",a,b,c);
    return 0;
}

 

10个整数排序

实验7 函数

一、实验目的

  1. 掌握指针的概念,会定义并使用指针变量。
  2. 学会使用数组的指针和指向数组的指针变量。
  3. 学会使用字符串的指针和指向字符串的指针变量。
  4. 学会使用指向函数的指针变量。

二、实验内容

2.将10个整数按由大到小排序输出。

(1)编程提示:利用冒泡法排序。

输入样例:

9 7 1 6 8 4 3 10 2 5

输出样例:

输出格式“%d ”

1 2 3 4 5 6 7 8 9 10 

代码: 

用指针知识统计各种字符的个数

实验7 函数

一、实验目的

  1. 掌握指针的概念,会定义并使用指针变量。
  2. 学会使用数组的指针和指向数组的指针变量。
  3. 学会使用字符串的指针和指向字符串的指针变量。
  4. 学会使用指向函数的指针变量。

二、实验内容

3.输入一行字符,用指针知识统计其中的大写字母、小写字母、空格、数字和其它字符的个数。
(1)编程提示
利用if的第三种形式,判断各字符并进行计数。

输入样例:

输入一行字符,例如

chi n123CDEH# !Tt @

输出样例:

输出格式数据格式如下,用一个空格分隔
大写字符 小写字母 空格 数字字符 其他字符

5 5 3 3 3
#include 
int main () {
    char str[100],*p=str;
    gets(p);
    int bchar_number=0,space_number=0,schar_number=0,num_number=0,other=0;
    for(;*p!='\0';p++){
        if(*p>='A' && *p<='Z') bchar_number++;
        else if(*p>='a' && *p<='z')
		  schar_number++;
        else if(*p==' ')
		  space_number++;
        else if(*p>='0' && *p<='9')
		  num_number++;
        else
		  other++;

    }
    printf("%d %d %d %d %d\n",bchar_number,schar_number,space_number,num_number,other);
    return 0;
}

 

 用指针知识按要求输出5×5矩阵

实验7 函数

一、实验目的

  1. 掌握指针的概念,会定义并使用指针变量。
  2. 学会使用数组的指针和指向数组的指针变量。
  3. 学会使用字符串的指针和指向字符串的指针变量。
  4. 学会使用指向函数的指针变量。

二、实验内容

4.编写函数,将一个5×5矩阵的最大值放在中心,四角按从左到右,从上到下的顺序存放最小值。
编程提示:利用打擂台法求最大值和最小值。

输入样例:

输入数据,之间用空格分隔,例如

11 12 13 14 15
21 31 66 88 23
10 42 68 31 35
65 68 99 82 29
71 72 73 74 75

输出样例:

输出格式数据格式如下,用一个空格分隔

10 71 75 14 11
21 31 66 88 23
15 42 99 31 35
65 68 68 82 29
12 72 73 74 13

代码:

/*11 12 13 14 15
21 31 66 88 23
10 42 68 31 35
65 68 99 82 29
71 72 73 74 75
输出样例:
输出格式数据格式如下,用一个空格分隔
10 71 75 14 11
21 31 66 88 23
15 42 99 31 35
65 68 68 82 29
12 72 73 74 13 */
#include 
void fun(int *p,int n)
{
	int *pmax=p,*pmin=p,*m=p,t;	//四个指针均指向一维空间的起始单元
	//找最大数和最小数
	for(m=m+1;m*pmax)
			pmax=m;
		if(*m<*pmin)
			pmin=m;
	}
	//把最大数放到中心位置
	t = *(p+2*5+2);
	*(p+12) = *pmax;
	*pmax = t;
	//把最小值放到左上角
	t = *p;
	*p = *pmin;
	*pmin = t;
	//找次小数
	pmin = p+1;
	m = p + 2;
	for(; m4*5+0
	t = *(p+20);
	*(p+20) = *pmin;
	*pmin = t;
	//找出此次次次小数
	pmin = p+1;
	m = p+2;
	for(; m24
	t = *(p+24);
	*(p+24) = *pmin;
	*pmin = t;
}

int main()
{
	int a[5][5],i,j;
	for(i=0;i<5;i++){
		for(j=0;j<5;j++)
			scanf("%d",&a[i][j]);
	}
	fun(*a,25);
	for(i=0;i<5;i++){
		for(j=0;j<4;j++)
			printf("%d ",a[i][j]);
		printf("%d",a[i][j]);
		printf("\n");
	}
	return 0;
}

 求字符串的长度

实验7 函数

一、实验目的

  1. 掌握指针的概念,会定义并使用指针变量。
  2. 学会使用数组的指针和指向数组的指针变量。
  3. 学会使用字符串的指针和指向字符串的指针变量。
  4. 学会使用指向函数的指针变量。

二、实验内容

5.编写函数,求字符串的长度。

编程提示:在遍历字符串时,进行计数,直到遇到’\0’结束。

输入样例:

输入数据,之间用空格分隔,例如

abcdefghi

输出样例:

输出格式数据格式如下,用一个空格分隔

9

代码: 

#include
int main(){
	char str[256];
	char *p=str;
	gets(p);
	while((*p)!='\0')
		p++;
	printf("%d",p-str);
	return 0;
}

用函数指针实现数组排序
一、实验目的

  1. 掌握指针的概念,会定义并使用指针变量。
  2. 学会使用数组的指针和指向数组的指针变量。
  3. 学会使用字符串的指针和指向字符串的指针变量。
  4. 学会使用指向函数的指针变量。

二、实验内容

6.输入10个整数进行排序并输出,其中用函数指针编写一个通用的排序函数,如果输入1,程序实现数据按升序排序;如果输入2,程序实现数据按降序。

(1)编程提示

定义ascend函数,决定按升序排序;定义descend函数,决定按降序排序;定义sort函数,实现排序的算法,根据实参,确定指向函数的指针变量调用ascend函数还是descend函数。

输入样例:

输入数据,之间用空格分隔
输入样例1:

2 3 4 9 10 8 7 6 5 1
1

输出样例:

输出格式数据格式如下,用一个空格分隔;最后一个数字后没有空格。

输出样例1:

1 2 3 4 5 6 7 8 9 10

输入样例2:

2 3 4 9 10 8 7 6 5 1
2

输出样例2

10 9 8 7 6 5 4 3 2 1

代码:

#include 
void sort_1(int a[],int n)  //case为1,升序排列
{
	int i,j,*p=a;
	int t;
	for(i=0;i*(a+j)){
				t=*(a+i);
				*(a+i)=*(a+j);
				*(a+j)=t;
			}
	}
}
void sort_2(int a[],int n)  //case为2,降序排列
{
	int i,j,*p=a;
	int t;
	for(i=0;i

 

你可能感兴趣的:(c语言,算法,数学建模)