嵌入式课程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;
}
相关推荐
九年义务漏网鲨鱼12 分钟前
【人脸伪造检测后门攻击】 Exploring Frequency Adversarial Attacks for Face Forgery Detection
论文阅读·python·算法·aigc
_OLi_17 分钟前
力扣 LeetCode 977. 有序数组的平方(Day1:数组)
数据结构·算法·leetcode
励志成为嵌入式工程师32 分钟前
c语言选择排序
c语言·算法·排序算法
三小尛34 分钟前
希尔排序(C语言)
c语言·数据结构·排序算法
風清掦36 分钟前
C/C++每日一练:编写一个查找子串的位置函数
c语言·c++·算法
三小尛39 分钟前
插入排序(C语言)
c语言·开发语言
WolvenSec1 小时前
C/C++逆向:结构体逆向分析
c语言·开发语言·c++·网络安全
A charmer1 小时前
算法每日双题精讲——滑动窗口(最大连续1的个数 III,将 x 减到 0 的最小操作数)
c++·算法·leetcode
还在学习进步3 小时前
C语言第十一周课——函数的调用
c语言·算法·排序算法
心动雨崽3 小时前
A算法详解(go实现)
开发语言·算法·golang