几道简单的c语言编程题(1)

本文列举了十个简单的C语言编程题目,包括递归求阶乘、分制转换、判断素数、日期计算等多个方面,旨在帮助初学者巩固基础知识和提高编程能力。
摘要由CSDN通过智能技术生成

1.递归求阶乘

分析n!=1*2*...*n
那么我们有两种方法

  • 递归
    思路:根据阶乘的规律n!=n*(n-1)!
    定义函数 f(x),使函数返回x*f(x-1)的值,直到 n=1。经过函数调用本身求出结果。
    代码

    #include<stdio.h>
    int cnt(int n);//调用声明函数
    int main()
    {
    	int n;
    	scanf("%d",&n);
    	printf("%d",cnt(n));
    	return 0;
    }
    
    int cnt(int n)//定义声明函数
    {
    	if(n>0)
    	n*=cnt(n-1);
    	else n=1;
    	return n;
    }
    
  • 循环
    思路:由于n!=n*(n-1)*...*1,则从 a=1 开始,+1 之后与 a 相乘。
    代码

    #include<stdio.h>
    int main()
    {
    int n;
    scanf("%d",&n);
    int a=1; //a 要初始化为 1
    for(int i=1;i<=n;i++) //注意 i 应从 1 取到 n,因此判断条件为<=
    a=a\*i;
    printf("%d",a);
    return 0;
    }
    

2.分制转换

题目:给出一个百分制成绩,要求输出成绩等级‘A’(90 分及 90 分以上),‘B’(80 到 89 分),’C’(70 到 79 分),’D’(60 到 69 分),’E’(60 分以下)。
输入格式
百分制成绩,整数,例如,100,89
输出格式
等级制成绩,例如 A,B,C 等等
eg85 B
分析:这道题很简单,在我复习重写的时候发现比以前写的简洁了不少,因为用到了映射的思想,使分数由 5 类简化为三类:100 分,60 到 99 分,60 分以下。
代码

#include<stdio.h>
int main()
{
int s;
scanf("%d",&s);
s/=10;//成绩映射为 0-10
if(s==10)//10(满分)的情况
printf("A");
else if(s>=6)//将 6 到 9 转换为字母等级
printf("%c",('E'-s+5));
else pri
  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值