嵌入式课程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;
}
相关推荐
დ旧言~3 分钟前
专题八:背包问题
算法·leetcode·动态规划·推荐算法
嵌入式科普19 分钟前
十三、从0开始卷出一个新项目之瑞萨RZN2L串口DMA接收不定长
c语言·stm32·瑞萨·e2studio·rzn2l
_WndProc20 分钟前
C++ 日志输出
开发语言·c++·算法
薄荷故人_22 分钟前
从零开始的C++之旅——红黑树及其实现
数据结构·c++
努力学习编程的伍大侠33 分钟前
基础排序算法
数据结构·c++·算法
XiaoLeisj1 小时前
【递归,搜索与回溯算法 & 综合练习】深入理解暴搜决策树:递归,搜索与回溯算法综合小专题(二)
数据结构·算法·leetcode·决策树·深度优先·剪枝
Jasmine_llq1 小时前
《 火星人 》
算法·青少年编程·c#
闻缺陷则喜何志丹2 小时前
【C++动态规划 图论】3243. 新增道路查询后的最短距离 I|1567
c++·算法·动态规划·力扣·图论·最短路·路径
Lenyiin2 小时前
01.02、判定是否互为字符重排
算法·leetcode