1. 给定两个整形变量的值,将两个值的内容进行交换。
//给定两个整形变量的值,将两个值的内容进行交换
#include <stdio.h>
#include <stdlib.h>
int main(void) {
int a = 1;
int b = 2;
int c = 0;
printf("交换前: a = %d , b = %d \n", a , b);
c = a;
a = b;
b = c;
printf("交换后: a = %d , b = %d \n", a, b);
system("pause");
return 0;
}
2.在1 的基础上,不创建临时变量,交换两个数的值
//给定两个整形变量的值,将两个值的内容进行交换。
//不允许创建临时变量,交换两个数的内容
#include <stdio.h>
#include <stdlib.h>
int main(void) {
int a = 1;
int b = 2;
printf("交换前: a = %d , b = %d \n", a , b);
a = a + b;
b = a - b;
a = a - b;
printf("交换后: a = %d , b = %d \n", a , b);
system("pause");
return 0;
}
3.输出十个数中最大的数:
//求10个整数中最大值
#include <stdio.h>
#include <stdlib.h>
int main(void) {
int a[10];
int b = 0;
printf("输出随机10个整数值:\n");
for (int i = 0; i < 10; i++) {
a[i] = rand() % 100;
printf("%d ", a[i]);
}
printf("\n");
b = a[0];
for (int j = 1; j < 10; j++) {
if (b < a[j]) {
b = a[j];
}
}
printf("这十个数中最大的数是:%d \n", b);
system("pause");
return 0;
}
4.按照从大到小顺序输出数字:
//排列3个数的大小,从大到小
#include <stdio.h>
#include <stdlib.h>
int main(void) {
int a[3];
int b = 0;
printf("输出随机3个整数值:\n");
for (int i = 0; i < 3; i++) {
a[i] = rand() % 100;
printf("%d ", a[i]);
}
printf("\n");
b = a[0]; //功能:将最大的数放在首
for (int j = 1; j < 3; j++) {
if (a[0] < a[j]) {
a[0] = a[j];
a[j] = b;
}
}
b = a[1]; //同理:将次大的数放在第二位
for (int j = 1; j < 3; j++) {
if (a[1] < a[j]) {
a[1] = a[j];
a[j] = b;
}
}
printf("从大到小顺序是: \n");
printf("%d %d %d\n", a[0],a[1], a[2]);
system("pause");
return 0;
}
5.输出两个数的最大公约数
//求两个数的最大公约数
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
int main(void) {
int arr[2] = {0};
int a = 0, b = 0;
int temp = 0;
printf("请输入两个整数:\n");
scanf("%d" , &a );
scanf("%d" , &b );
printf("%d %d 的最大公约数是:", a ,b );
//arr[0]存放最大值
if (a > b) {
arr[0] = a;
arr[1] = b;
}
else {
arr[0] = b;
arr[1] = a;
}
//辗转相除法
while (1){
temp = arr[0] % arr[1];
if (temp == 0) {
printf("最大公约数是:%d\n", arr[1]);
break;
}
else if (temp != 0) {
arr[0] = arr[1];
arr[1] = temp;
}
}
system("pause");
return 0;
}