c语言小练习

博客给出了几个基础C语言算法示例,包括交换两个整形变量的值(含创建和不创建临时变量两种方法)、求10个整数中的最大值、将三个数从大到小输出以及求两个数的最大公约数,每个示例都附有具体代码。

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;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值