题目:给定两个整形变量的值,将两个值的内容进行交换。
代码:
#include<stdio.h>
#include<stdlib.h>
int main(){
int a=10, b=18,temp=0;
printf("原值:a=%d,b=%d\n", a, b);
temp = a;
a = b;
b = temp;
printf("交换后:a=%d,b=%d\n", a, b);
system("pause");
return 0;
}
结果:
题目:不允许创建临时变量,交换两个数的内容
代码:
#include<stdio.h>
#include<stdlib.h>
int main(){
int a = 10, b = 20;
printf("原值:a=%d,b=%d\n", a, b);
//例子:
//找规律
//10=01010 20=10100
//a=a^b=11110
//b=a^b=01010
//a=a^b=10100
a = a^b;
b = a^b;
a = a^b;
printf("交换后:a=%d,b=%d\n", a, b);
system("pause");
return 0;
}
结果:
题目:求10 个整数中最大值。
代码:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main(){
int a[10],i,j,t;
printf("input 10 numbers:\n");
for ( i = 0; i < 10; i++){
scanf("%d", &a[i]);
}
//下面排序方法可以替换,此处方法为冒泡排序
for (j = 0; j < 9; j++){
//进行9次循环,实现九趟比较
for (i = 0; i < 9 - j; i++){
//在每一趟中进行9-j次比较
if (a[i]>a[i + 1]){
//具体比较过程,前一个元素和后一个元素进行比较,大的放在后面,比较到最后最大元素在最后面,下一次循环就少一次
t = a[i]; a[i] = a[i+1]; a[i+1] = t;
}
}
}
printf("the min number is: %d\n", a[0]);
printf("the max number is:%d\n",a[9]);
system("pause");
return 0;
}
结果:
题目:将三个数按从大到小输出。
代码:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main(){
int a, b, c, temp;
printf("enter 3 numbers:\n");
//在scanf输入时,一定要注意在键盘上输入格式与双引号""内格式一致,不然会出error
scanf("%d %d %d", &a, &b, &c);
//第一次比较b为a,b之间较大的
if (a > b){
temp = a;
a = b;
b = temp;
}
//接着第二次比较b和c之间,从而c为三者之间最大
if (b > c){
temp = b;
b = c;
c = temp;
}
//最后再比较a,b,a为最小,b为第二小,排序完成
if (a > b){
temp = a;
a = b;
b = temp;
}
printf("%d,%d,%d", a, b, c);
system("pause");
return 0;
}
结果:
题目:求两个数的最大公约数,最小公倍数
代码:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
//求两个数的最小公倍数
int main(){
int m, n, p, aim;
printf("please inter two numbers:");
scanf("%d %d", &m, &n);
//根据唯一分解定理:一个数的最小公倍数*最大公约数=两数成绩
for (int i = 1; i <= m, i <= n; i++){
//求最大公约数的核心代码
if (m%i == 0 && n%i == 0){
p = i;
}
}
//求最小公倍数
aim = ((m*n) / p);
printf("greatest common divisor is %d:\n", p);
printf("least common multiple is %d:\n", aim);
system("pause");
return 0;
}
结果:
结语:之后会不断学习,不断完善不足的,加油