今天打了几个简单的C语言的习题:
1. 给定两个整形变量的值,将两个值的内容进行交换。
2. 不允许创建临时变量,交换两个数的内容.
3.求10 个整数中最大值。
4.将三个数按从大到小输出。
5.求两个数的最大公约数。
在编的过程中,个人觉得第2道题是相对来说比较难理解的一道题,将两个数二进制按位异或(异或的规则为:相同为0,相异为1),从而达到交换两个数值的目的.
下面是我在vs2013中写的代码,
#define _CRT_SECURE_NO_WARNINGS 这个语句在程序中有scanf 时候要加上,不加的话程序会提示你'scanf'是不安全的,也可以用 scanf_s 来代替#define _CRT_SECURE_NO_WARNINGS,但是推荐用#define _CRT_SECURE_NO_WARNINGS.
1.给定两个整形变量的值,将两个值的内容进行交换
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a = 10;
int b = 20;
int c = 0;
printf("交换前的值为: a = 10,b = 20\n");
c = a;
a = b;
b = c;
printf("交换后的值为: a = %d,b = %d\n", a, b);
printf("\n");
system("pause");
return 0;
}
2.不允许创建临时变量,交换两个数的内容.
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a = 10;
int b = 20;
printf("交换前的值为: a = 10,b = 20\n");
a = a ^ b;
b = a ^ b;
a = a ^ b;
printf("交换后的值为: a = %d,b = %d\n", a, b);
printf("\n");
system("pause");
return 0;
}
3.求10 个整数中最大值。
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a[10] = { 31, 216, 56, 98, 76, 12, 105, 75, 34, 89 };
int i = 0;
int j = 0;
int max = 0;
for (i = 0; i < 9; ++i)
{
if (a[i] > a[i + 1])
{
max = a[i];
a[i] = a[i + 1];
a[i + 1] = max;
}
}
printf("最大值为%d\n", max);
system("pause");
return 0;
}
4.将三个数按从大到小输出。
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a = 0,b = 0,c = 0;
int n;
printf("请输入三个数:");
scanf("%d %d %d",&a,&b,&c);
if (a < b)
{
n = a;
a = b;
b = n;
}
if (a < c)
{
n = a;
a = c;
c = n;
}
if (b < c)
{
n = b;
b = c;
c = n;
}
printf("a=%d,b=%d,c=%d\n", a, b, c);
system("pause");
return 0;
}
5.求两个数的最大公约数。
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main()
{
int x, y, i, t;
printf("请输入两个数;\n");
scanf("%d%d", &x, &y);
t = x;
if (t>y)
{
t = y;
}
for (i = t; i >= 1; i--)
{
if (x%i == 0 && y%i == 0)
{
printf("最大公约数为:%d", i);
break;
}
}
printf("\n");
system("pause");
return 0;
}
以上就是这几道题的代码,虽然简单,我会好好努力,脚踏实地的去学习更多的知识!!!