学习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;
}
一家之言,如有错误还望指正,欢迎大家交流啊!