嵌入式课程day07-C语言流程控制语句作业

目录

[1、输出100~500以内 能被3整除且个位数字是7的整数](#1、输出100~500以内 能被3整除且个位数字是7的整数)

2、输入两个数据求他们的最大公约数

3、有1、2、3、4共4个数据,能组成多少个互不相同且无重复的三位数?都是多少?

4、求1!+2!+3!+....+n! (n!就是n的阶乘意思,n!=1*2*3...*n)

5、输入4个整数,要求按从小到大的顺序输出 (用if语句输出)

6、输入日期,打印该日期是该年的第几天

7、输入总行数,按照下列规律输出数据

作业:

1、输出100~500以内 能被3整除且个位数字是7的整数

思路

定义变量n

遍历100~500

如果(能被3整除且个位数字是7的整数)

输出

cs 复制代码
#include<stdio.h>
int main() {
	int n;
	for(n=100; n<=500; n++) {
		if(n%3==0&&n%10==7)
			printf("%d ",n);
	}
	return 0;
}

2、输入两个数据求他们的最大公约数。

输入两个数a,b

定义变量n为ab中小的那个

遍历n到0

如果a,b对n取余都为0

输出并结束语句

cs 复制代码
#include<stdio.h>
int main() {
	int a,b,n;
	scanf("%d %d",&a,&b);
	n=a<b?a:b;
	for(n; n>0; n--) {
		if(a%n==0&&b%n==0) {
			printf("%d",n);
			return;
		}
	}
	return 0;
}

3、有1、2、3、4共4个数据,能组成多少个互不相同且无重复的三位数?都是多少?

定义a,b,c

嵌套三个循环

遍历所有三位数

输出满足条件的三位数

cs 复制代码
#include<stdio.h>
int main() {
	int a,b,c;
	for(a=1; a<5; a++)
		for(b=1; b<5; b++)
			for(c=1; c<5; c++)
				if(a!=b&&a!=c&&b&&c)
					printf("%d ",a*100+b*10+c);
	return 0;
}

4、求1!+2!+3!+....+n! (n!就是n的阶乘意思,n!=1*2*3...*n)

定义i表示第几项

定义sum表示第几项的

定义sn表示前几项的值

遍历1到n

求出对应的sm

sn+=sum,输出

cs 复制代码
#include<stdio.h>
int main() {
	int i,sum,sn,n,j;
	scanf("%d",&n);
	for(i=1; i<=n; i++) {
		sn=1;
		sum=0;
		for(j=1; j<=i; j++) {
			sn*=j;
			sum+=sn;
		}
	}
	printf("\n%d ",sum);
	return 0;
}

5、输入4个整数,要求按从小到大的顺序输出 (用if语句输出)

定义一个temp,

从左往右用if"遍历"

如果a>b,ab换位

如果a>c,ac换位

以此类推

cs 复制代码
#include <stdio.h>

int main() {
    int a, b, c, d, temp;
    scanf("%d %d %d %d", &a, &b, &c, &d);
    if (a > b) { temp = a; a = b; b = temp; }
    if (a > c) { temp = a; a = c; c = temp; }
    if (a > d) { temp = a; a = d; d = temp; }
    if (b > c) { temp = b; b = c; c = temp; }
    if (b > d) { temp = b; b = d; d = temp; }
    if (c > d) { temp = c; c = d; d = temp; }
    printf("从小到大的顺序为:%d %d %d %d\n", a, b, c, d);
    return 0;
}

6、输入日期,打印该日期是该年的第几天

输入年份+月份+日期

定义x\y\z接收三个值

定义n储存总天数

将每个月都按照31天算,总天数等于(y-1)*31+z

遍历包含的所有月(1~y-1)

如果有2

判断是否是闰年,若是y-=2,否则y-=3

如果有4\6\9\11,y-=1

输出天数

cs 复制代码
#include <stdio.h>

int main() {
	int x,y,z,n,i;
	scanf("%d %d %d",&x,&y,&z);
	n=31*(y-1)+z;
	for(i=1; i<=y; i++) {
		if(i==2)
			if(x%4==0&&x%100!=0||x%400==0)
				n-=2;
			else n-=3;
		if(i==4||i==9||i==6||i==11)
			n-=1;
	}
	printf("是这一年的第%d天",n);
	return 0;
}

7、输入总行数,按照下列规律输出数据。

A

ABA

ABCBA

ABCDCBA

ABCDEDBCA

....

先循环输出对应的空格数=总行数-本行所在行

再循环输出对应前半的字符,字符个数等于本行所在行-1

再循环输出对应后半的字符,直到输出到A

cs 复制代码
#include<stdio.h>
int main() {
	int i,j,k;
	char a;
	scanf("%d",&j);
	for(i=1; i<=j; i++) {
		k=i;
		while(j-k) {
			k++;
			printf("  ");
		}
		for(a='A'; a-'A'<i-1; a++) {
			printf(" %c",a);
		}
		for(a; a-'A'>=0; a--)
			printf(" %c",a);
		printf("\n");
	}
	return 0;
}
相关推荐
CoovallyAIHub3 小时前
中科大DSAI Lab团队多篇论文入选ICCV 2025,推动三维视觉与泛化感知技术突破
深度学习·算法·计算机视觉
NAGNIP4 小时前
Serverless 架构下的大模型框架落地实践
算法·架构
moonlifesudo4 小时前
半开区间和开区间的两个二分模版
算法
moonlifesudo4 小时前
300:最长递增子序列
算法
CoovallyAIHub9 小时前
港大&字节重磅发布DanceGRPO:突破视觉生成RLHF瓶颈,多项任务性能提升超180%!
深度学习·算法·计算机视觉
CoovallyAIHub10 小时前
英伟达ViPE重磅发布!解决3D感知难题,SLAM+深度学习完美融合(附带数据集下载地址)
深度学习·算法·计算机视觉
聚客AI1 天前
🙋‍♀️Transformer训练与推理全流程:从输入处理到输出生成
人工智能·算法·llm
大怪v1 天前
前端:人工智能?我也会啊!来个花活,😎😎😎“自动驾驶”整起!
前端·javascript·算法
惯导马工1 天前
【论文导读】ORB-SLAM3:An Accurate Open-Source Library for Visual, Visual-Inertial and
深度学习·算法
骑自行车的码农1 天前
【React用到的一些算法】游标和栈
算法·react.js