C语言(函数的调用)值传递

本文通过C语言实现多个函数,包括求最小值、整数逆序、判断闰年、字母计数、完数检测和回文数判断。通过这些函数的调用来演示C语言的值传递原理及条件判断应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

编写函数 int  min(int x ,int  y,int  z),实现求出三个数中的最小值。要求在main函数中输入三个整数,然后调用min函数,最后将求得的最小值输出。

#include<stdio.h>
int min(int x,int y,int z)
{
	int a,b;
	a=x<y?x:y;
	b=a<z?a:z;
	return b;
}
int main()
{
	int x,y,z,b;
	scanf("%d %d %d",&x,&y,&z);
	b=min(x,y,z);
	printf("%d",b);
	return 0;
}

编写函数 int  rev (int x),实现将一个整数变换为自身的逆序数。要求在main函数中输入一个整数,然后调用rev函数,最后将求得的逆序数输出。

#include<stdio.h>
int rev(int x)
{
	int y;
	for(y=0;x>0;x=x/10){//x的值/10相当于把最后一位去掉了 
		y=y*10+x%10;//每次循环先把x的最后一位求出来,下次循环就升一位 
	}
	return y;
}
int main()
{
	int n;
	scanf("%d",&n);
	printf("%d",rev(n));
	return 0;
}

编写函数 int  leap(int  x),实现判断x是否是闰年。如果是闰年函数返回值为1,否则为0,编写程序,在main函数中输入年份,然后调用leap函数,最后根据函数调用结果,输出"Yes"或者"No"。

#include<stdio.h>
int leap(int x)
{
	if((x%4==0&&x%100!=0)||x%400==0){//判断为闰年的条件(普通:4的倍数且不是100的倍数,世纪://必须为400的倍数)
		return 1;
	}
	return 0;
}
int main()
{
	int y;
	scanf("%d",&y);
	if(leap(y)){
		printf("Yes");
	}
	else {
		printf("No");
	}
	return 0;
}

编写函数 int isAlp(char ch)判断一个字符是否是字母。要求在main函数中输入一个串,然后调用isalp函数来进行判断,从而统计字符串中字母的个数。

#include<stdio.h>
#include<string.h>
int isAlp(char ch)
{
	if((ch>='A'&&ch<='Z')||(ch>='a'&&ch<='z')){
		return 1;
	}
	return 0;
}
int main()
{
	int n,x=0,i;
	char ch[20];
	gets(ch);
	n=strlen(ch);
	for(i=0;i<n;i++){
	if(isAlp(ch[i])){
		x++;
	}
}
    printf("%d",x);
	return 0;
}

编写函数int isPer(int  n)判断一个数n是否完数,是返回1,不是返回0,完数定义:如果一个数等于其所有真因子(不含自身)之和,则该数为完数,例如6的真因子有1,2,3,且6=1+2+3,所以6是完数。要求在main函数中求出2~1000中所有的完数,并输出。

#include<stdio.h>
int isPer(int n)
{
	int i,sum=0;
	for(i=1;i<=n/2;i++){
		if(n%i==0){//可以整除,为真因子 
			sum+=i;//把每个真因子累加给sum 
		}
	}
	if(sum==n){
			return 1;
}
    return 0;
}
int main()
{
	int i;
	for(i=2;i<=1000;i++){
		if(isPer(i)){
			printf("%d ",i);
		}
	}
	return 0;
}

6.编写函数 int isPal(int x)判断一个整数是否是回文数(倒着写正着写都相等),是返回1,不是返回0。要求在main函数中输

#include<stdio.h>
int rev(int x)//先写一个函数(倒序)方便以后调用 
{
	int y;
	for(y=0;x>0;x=x/10){
		y=y*10+x%10;
	}
	return y;
}
int isPal(int x)
{
	if(x==rev(x)){
		return 1;}
	    else {
		return 0;}
}
int main()
{
	int x;
	scanf("%d",&x);
	if(isPal(x)==1){
		printf("Yes");
	}
	else {
		printf("No");
	}
	return 0;
}

入一个整数,然后调用isPal函数来进行判断。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值