C初识之习题一
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C初识之习题一相关的知识,希望对你有一定的参考价值。
1.给定两个整形变量的值,将两个值的内容进行交换。
此题思路:定义临时变量c
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a = 3, b = 4, c; //定义变量
printf("初始值:%d %d
", a, b);
c = a;
a = b;
b = c;
printf("交换后:%d %d
", a, b);
system("pause");
return 0;
}
执行结果如下:
2 不允许创建临时变量,交换两个数的内容(附加题)
此题思路:运用a和b的差值进行运算交换
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a = 3, b = 4;
printf("初始值:%d %d
", a, b);
a = a + b;
b = a - b;
a = a - b;
printf("交换后:%d %d
", a, b);
system("pause");
return 0;
}
执行结果如下:
3.求10 个整数中最大值。
此题思路:在不定义指针变量的情况下求出最大值。
注意:建议不要使用数组进行逐个比较,原因数组索引必须为正整数或逻辑值。
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main()
{
int num, max=0x80000000;//给max附一个最小值
for (int i = 0; i < 10; i++){
scanf("%d", &num);
if (num>max)
max = num;
}
printf(" %d
", max );
system("pause");
return 0;
}
执行结果如下:
4.将三个数按从大到小输出
此题思路:两两比较,互相交换保证大在前小在后
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a, b, c, m;
scanf(" %d %d %d" ,&a,&b,&c);
if (a<b)
{
m = a; a = b; b = a;
}
if (a<c)
{
m = a; a = c; c = a;
}
if (b<c)
{
m = b; b = c; c = b;
}
printf("从大到小排序为:%d %d %d
", a, b, c);
system("pause");
return 0;
}
执行结果如下:
5.求两个数的最大公约数。
解题思路1:对i进行遍历,是否能被两个整数同时整除(比较慢)
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a=0, b=0, max=0;
scanf("%d %d", &a, &b);
int smaller;
smaller = a > b ? b : a;
for (int i = 2; i <= smaller; i++){
if (a%i == 0 && b%i == 0){
max = i;
}
}
printf("最大公约数:%d
", max);
system("pause");
return 0;
}
以上是关于C初识之习题一的主要内容,如果未能解决你的问题,请参考以下文章