Educoder-程序设计基础(C语言)-简单一重循环

第1关:计数控制循环--偶数之和

​ 从键盘输入6个整数,计算其中大于0的偶数之和

#include <stdio.h>
#include <math.h>
int main()
{
	int a, sum = 0;
	for (int i = 0; i < 6; i++)
	{
		scanf("%d", &a);
		if (a % 2 == 0 && a >= 0)
			sum = sum + a;
	}
	printf("%d", sum);
	return 0;
}

第2关:计数控制循环--求N的阶乘

​ 输入一个的整数12>=N>0,计算其阶乘值。如阶乘值超过109时,则输出“Too large!”的信息,否则输出正确的阶乘值

#include <stdio.h>
#include <math.h>
int main()
{
    int n, i;
    long p = 1;
    scanf("%d", &n);
    if (n > 12)
        printf("Too large!");
    else
    {
        for (i = 1; i <= n; i++)
            p = p * i;
        printf("%ld", p);
    }
    return 0;
}

第3关:计数控制循环--仅有两个数码相同的三位数

​ 输入两个三个位数的整数a,b,输出【a,b】间有且仅有两个数字相同的数字个数

#include <stdio.h>
#include <math.h>
int main()
{
    int a, b, c, d, e, i, sum = 0;
    scanf("%d%d", &a, &b);
    for (i = a; i <= b; i++)
    {
        c = i % 10;
        d = i / 10 % 10;
        e = i / 100;
        if ((c == d || c == e || d == e) && !(c == d && d == e))
            sum++;
    }
    printf("%d", sum);
    return 0;
}

第4关:条件控制循环--找整数中指定数码

​ 输入一个整数n(n>=10),如果该整数中包括了数字5或9,则输出此数对45求余的结果,如果不包含5和9,则输出信息:“Not include!”

#include <stdio.h>
#include <math.h>
int main()
{
    int n, a, b;
    scanf("%d", &n);
    b = n;
    do
    {
        a = n % 10;
        n /= 10;
        if (a == 5 || a == 9)
        {
            b = b % 45;
            printf("%d", b);
            break;
        }
    } while (a != 0);
    if (a == 0)
        printf("Not include!");
    return 0;
}

第5关:条件控制循环--整数分段

​ 根据整数的长度来分段重新组合生成新数。输入多个偶数位数的整数m,将数平均分为两段:前半段为s,后半段为t,将前后半段交换,构成一个新的整数,并输出,不保留高位零。当输入数据为-1时结束

#include <stdio.h>
#include <math.h>
int main()
{
    int a, b, x, m, n, c;
    scanf("%d", &n);
    while (n != -1)
    {
        m = floor(log10(n) + 1);
        x = pow(10, m / 2 + 1e-6);
        a = n % x;
        b = n / x;
        c = a * x + b;
        printf("%d\n", c);
        scanf("%d", &n);
    }
    return 0;
}
/*计算机如何确定一个整数的位数?
(1)要获得一个整数n的具体是几位数,可利用log10和floor函数:
m = floor(log10(n)+1)
(2) 利用循环,一位位地数数:从个位数开始,一位位地将数字去掉(n/10),去掉的同时进行计数
pow()函数的参数与返回值均为double类型,使用数值方法实现的求n次方,求解结果是有误差的。因此,在对pow()函数的返回值进行取整运算时,经常会加上一个非常小的小数,如1e-6,以保证取整结果不会比预计的值少1。
例如:
b = (int)(pow(x,y)+1e-6);
*/

第6关:计数控制循环--分数序列和

​ 输入:2 输出:3.50 表示输出序列前2项的和

#include <stdio.h>
#include <math.h>
int main()
{
    float sum, c, a, b;
    int i, n;
    scanf("%d", &n);
    a = 2;
    b = 1;
    sum = 0;
    i = 0;
    while (i < n)
    {
        sum = sum + a / b;
        c = a;
        a = c + b;
        b = c;
        i++;
    }
    printf("%0.2f", sum);
    return 0;
}

第7关:条件控制循环--大小写字母变换

​ 从键盘输入依次输入一串英文字母,大小写不限,将其中的大写字母转换成相应的小写字母,小写字母转换成相应的大小字母,当输入字符不是英文字母时,停止程序执行

#include <stdio.h>
#include <math.h>
int main()
{
    char a;
    scanf("%c", &a);
    while (a >= 65 && a <= 122)
    {
        if (a <= 90)
        {
            a = a + 32;
            printf("%c", a);
        }
        else
        {
            a = a - 32;
            printf("%c", a);
        }
        scanf("%c", &a);
    }
    return 0;
}

posted @ 2021-07-15 17:40  颜骏  阅读(1814)  评论(0编辑  收藏  举报