1>给定两个整形变量的值,将两个值的内容进行交换.
有两个整形变量x、y,现要交换x和y中存放的值.若两值相等,直接输出.若不相等,可以新建一个中间变量来交换两值.
代码如下:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main(void){
int x = 0, y = 0;
printf("请输入两个整数:\n");
scanf("%d %d", &x, &y);
if (x == y){
printf("交换后:x=%d y=%d\n", x, y);
}
else{
int t = 0;
t = x;
x = y;
y = t;
printf("交换后:x=%d y=%d\n", x, y);
}
system("pause");
return 0;
}
2>不允许创建临时变量,交换两个数的内容.
有两个整形变量x,y,现要在不允许创建临时变量的情况下交换两值.
若两值相等,直接输出.若不相等,可以利用数学加减法来交换两值.
代码如下:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main(void){
int x = 0, y = 0;
printf("请输入两个整数\n ");
scanf("%d %d", &x, &y);
if (x == y){
printf("交换后:x=%d y=%d\n", x, y);
}
else{
x = x + y;
y = x - y;
x = x - y;
printf("交换后:x=%d y=%d\n", x, y);
}
system("pause");
return 0;
}
3>求10个整数中最大值
给10个值,放入数组中,先选第一个值赋给新建变量max,然后依次将max与所有值进行比较.遇到比max大的值就赋值给max,遇到比max小的不进行赋值,进行下一次比较.全部比较结束后,输出max的值,即为最大值.
代码如下:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int Compare(int a[]);
int main(void){
int x = 0;
int a[] = { 0 };
for (int i = 0; i < 10; ++i){
scanf("%d", &x);
a[i] = x;
}
int max = Compare(a);
printf("%d\n", max);
system("pause");
return 0;
}
//找最大值
int Compare(int a[]){
int max = 0;
max = a[0];
for (int i = 0; i < 10;++i){
if (a[i]>max){
max = a[i];
}
}
return max;
}
4>将三个数按从大到小输出
利用if-else语句和条件运算符
代码如下:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main(void){
int x = 0, y = 0, z = 0;
scanf("%d %d %d", &x, &y, &z);
if (x > y){
if (x > z){
printf("%d ", x);
printf("%d ", (y > z) ? y : z);
printf("%d\n", (y < z) ? y : z);
}
else{
printf("%d %d %d", z,x,y);
}
}
else {
if (y>z){
printf("%d ", y);
printf("%d ", (x > z) ? x : z);
printf("%d\n", (x < z) ? x : z);
}
else{
printf("%d %d %d", z,y,x);
}
}
system("pause");
return 0;
}
5>求两个数的最大公约数
利用辗转相除法.第一步将两个数分别赋给新建变量x、y,将x%y的值赋给新建变量z.第二步将y的值赋给x,z的值赋给y,x%y的值赋给z.若z的值为0,则输出y,此时y就是两数的最大公约数.若z的值不为0,继续执行第二步,直至z的值为0.
代码如下:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main(void){
int x=0, y=0;
scanf("%d %d", &x, &y);
int z = 0;
z = x%y;
while (z != 0){
x = y;
y = z;
z = x%y;
}
printf("%d\n", y);
system("pause");
return 0;
}