函数的传参应用
  C

函数的传参应用

 次点击
8 分钟阅读

字符串统计

编写一个函数,统计字符串中小写字母的个数,并把字符串中的小写字母转化成大写字母

#include <stdio.h>

int fun_string(char * p);

int main(){
	char s[100];
	int sum;

	scanf("%s",s);
	sum = fun_string(s);
	printf("%s sum=%d\n",s,sum);
	return 0;
}

int fun_string(char * p){
	int sum;
	while (*p != '\0'){
		if (*p >= 'a' && *p <= 'z'){
			sum++;
			*p -= 32;
		} p++; 
	}
	return sum;
}

/*
asd123FGH
ASD123FGH sum=3
*/
#include <stdio.h>

void fun_string(char *p,int *sum_p);

int main(){
	char s[100];
	int sum = 0;

	scanf("%s",s);
	fun_string(s,&sum);
	printf("%s sum=%d\n",s,sum);
	return 0;
}

void fun_string(char *p,int *sum_p){
	while (*p != '\0'){
		if (*p >= 'a' && *p <= 'z'){
			(*sum_p)++;
			*p -= 32;
		} p++; 
	}
}

/*
asd123FGH
ASD123FGH sum=3
*/

一维数组在函数间传参

全局数组传递方式

指针传递方式

实参为数组的指针,形参为同类型的指针变量
void fun (int *arr, int size);

数组名形式传参

实参为数组的指针,形参为数组名(本质是一个指针变量)

void fun (int arr[], int size);

编写函数,计算一个一维整形数组的所有元素的和

#include <stdio.h>

int fun_sum(int *data, int n);

int main() {
	int a[] = {1,5,9,10,20,21};
	int sum = 0;

	sum = fun_sum(a,sizeof(a) / sizeof(int));
	printf("%d\n",sum);

	return 0;
}

int fun_sum(int *data, int n) {
	int i;
	int sum = 0;
	
	for (i = 0; i < n; i++){
		sum += data[i];
	}
	return sum;
}

//66

对整型数组进行排序,编写排序函数,并调用

#include <stdio.h>

void fun_sort(int *data, int n);
void fun_print(int *data, int n);

int main() {
	int a[] = {3,9,5,1,8,4};

	fun_sort(a,sizeof(a) / sizeof(int)); 
	fun_print(a,sizeof(a) / sizeof(int)); 
	return 0;
}

void fun_sort(int *data, int n) {
	int i, j;
	int t;

	for (i = 0; i < n-1; i++){
		for (j = 0; j < n-1-i; j++){
			if (data[j] > data[j+1]) {
				t = data[j];
				data[j] = data [j+1];
				data[j+1] = t;
			}
		}
	}
}

void fun_print(int *data, int n) {
	int i;

	for (i = 0; i < n; i++) {
		printf("%d\n",data[i]);
	}
}

/*
1
3
4
5
8
9
*/

© 本文著作权归作者所有,未经许可不得转载使用。