1.给定两个整形变量的值,将两个值的内容进行交换。
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a, b,temp;
printf(“请输入两个整数:a,b\n”);
scanf("%d %d", &a, &b);
printf(“交换前:\n”);
printf(“a=%d b=%d\n”, a, b);
printf(“交换后:\n”);
temp = a;
a = b;
b = temp;
printf(“a=%d b=%d\n”, a, b);
system(“pause”);
return 0;
}
2.不允许创建临时变量,交换两个数的内容(附加题)
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a, b;
printf(“请输入两个整数:a,b\n”);
scanf("%d %d", &a, &b);
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;
}
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a, b;
printf(“请输入两个整数:a,b\n”);
scanf("%d %d", &a, &b);
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 个整数中最大值。
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i=0, max;
int a[10];
printf(“请输入10个整数:\n”);
while ( i< 10)
{
scanf("%d", &a[i]);
++i;
}
max = a[0];
for (int j = 1;j < 10; j++)
{
if (max < a[j])
max = a[j];
}
printf("%d\n", max);
system(“pause”);
return 0;
}
4.将三个数按从大到小输出
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main()
{
int temp=0;
printf(“请输入3个整数:\n”);
int a[3];
scanf("%d %d %d", &a[0], &a[1], &a[2]);
//冒泡排序
for(int i=1;i<3;i++)
for (int j = 0; j < 3-i; j++) {
if (a[j] < a[j + 1]) {
int temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
//输出;
for (int i = 0; i < 3; i++) {
printf("%d\n", a[i]);
}
system(“pause”);
return 0;
}
5.求两个数的最大公约数。
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int Gcd(int a, int b) {
int t, i;
if (a <= 0 || b <= 0) return -1;
t = a < b ? a : b;
for (i = t; i > 0; i–) { ////从a和b的较小者t开始,逐次减1尝试每种可能
if (a%i == 0 && b%i == 0) return i;
}
return 1;
}
int main() {
int num1, num2, divisor = 0;
printf(“请输入两个整数:\n”);
scanf("%d %d", &num1, &num2);
divisor = Gcd(num1, num2);
printf("%d", divisor);
system("pause");
return 0;
}