C语言练题历程

学习C语言蜕变历程02

大家好!我又来了这次又带来几个例题,并且在后续文章中还会逐渐加深难度,初学C 肯定要从熟悉典例开始,在以后的文章里还会出更多内容如编译器函数不同等问题。闲话少说,上今天例题代码(σ゚∀゚)σ…:*☆哎哟不错哦


一、 给定两个整形变量的值,将两个值的内容进行交换。

#include<stdio.h>
int main(){
	int num1,num2;//声明两个数 
	int temp;//声明一个中间变量 
	scanf("%d %d",&num1,&num2); 
	temp = num1;
	num1 = num2;
	num2 = temp;//我们用一个中间变量来交换确保赋值的时候不会覆盖掉原来的值 
	printf("%d %d",num1,num2);
	return 0;	
}

二、不允许创建临时变量,交换两个数的内容

其实这题乍一看有点意思方法也不唯一,举出三种
1)加法交换
2)异或交换
3)乘法交换
详细解释,代码如下:

#include <stdio.h>
int main(){
	int a,b;
	scanf("%d %d",&a,&b);
	a = a + b;
	b = a - b;//b = a + b - b = a
	a = a - b; //a = a + b - a = b
	printf("%d %d",a,b);	
	return 0;
}
#include <stdio.h>
int main(){
	int a,b;
	scanf("%d %d",&a,&b);
	a = a ^ b;
	b = a ^ b;//b = a ^ b ^ b= a
	a = a ^ b;//a = a ^ b ^ a = b 异或运算的特点就是两次和其他数进行两次异或运算等于他自己
	printf("%d %d",a,b);	
	return 0;
}
#include <stdio.h>
int main(){
	int a,b;
	scanf("%d %d",&a,&b);
	a = a * b;
	b = a / b;//b = a * b / b= a
	a = a / b;//a = a * b / a = b
	printf("%d %d",a,b);	
	return 0;
}

三、 求10 个整数中最大值。

#include<stdio.h>
int main(){
	int arr[10];//我们定义一个容量为10的数组来储存10个数
	int i = 0,max = 0;
	for(i = 0;i < 10;i++){
		scanf("%d",&arr[i]);
	}
	for(i = 0;i < 0;i++){
		if(arr[i]>arr[0]){
			max = arr[i];
		}//进行10个数中的两两比较
		else{
			max = arr[0];
		}
		printf("%d",max);
	}
	return 0;	
}

四、将三个数按从大到小输出。

#include<stdio.h>
int main(){
	int n1,n2,n3,temp=0;
	scanf("%d %d %d",&n1,&n2,&n3);
	if(n1 > n2){
		temp = n1;
		n1 = n2;
		n2 = temp;
	}
	if(n1 > n3){
		temp = n1;
		n1 = n3;
		n3 = temp;
	}
	if(n2 > n3){
		temp = n2;
		n2 = n3;
		n2 = temp;
	}//完成对三个数从小到大的讨论并交换
	printf("%d %d %d",n1,n2,n3);
	
	return 0;		
} 

五、 求两个数的最大公约数。

#include<stdio.h>
int main(){
	int a,b,i;
	scanf("%d %d",&a,&b);
	for(i = a;i > 0;i--){/*这里把i的值赋成a了当然赋成b
	也可以*/
		if((a % i==0)&&(b % i==0)){
			printf("%d",i);
			break;
		}
	}
	return 0;	
}

一家之言,如有错误还望指正,欢迎大家交流啊!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李 天 真

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值