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;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?