【C初识之习题一】

1.给定两个整形变量的值,将两个值的内容进行交换。
此题思路:定义临时变量c

#include<stdio.h>
#include<stdlib.h>
int main()
{
    int a = 3, b = 4, c;  //定义变量
    printf("初始值:%d %d\n", a, b);
    c = a; 
    a = b; 
    b = c;
    printf("交换后:%d %d\n", a, b);
    system("pause");
    return 0;
}

执行结果如下:
【C初识之习题一】

2 不允许创建临时变量,交换两个数的内容(附加题)
此题思路:运用a和b的差值进行运算交换

#include<stdio.h>
#include<stdlib.h>
int main()
{
    int a = 3, b = 4;
    printf("初始值:%d %d\n", a, b);
    a = a + b;
    b = a - b;
    a = a - b;
    printf("交换后:%d %d\n", a, b);
    system("pause");
    return 0;
}

执行结果如下:
【C初识之习题一】

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\n", max );
    system("pause");
    return 0;
}

执行结果如下:
【C初识之习题一】
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\n", a, b, c);
    system("pause");
    return  0;
}

执行结果如下:
【C初识之习题一】
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\n", max);
    system("pause");
    return 0;
}

【C初识之习题一】

猜你喜欢

转载自blog.51cto.com/14606679/2451337