嵌入式课程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;
}
相关推荐
爱装代码的小瓶子44 分钟前
数据结构之队列(C语言)
c语言·开发语言·数据结构
爱喝矿泉水的猛男2 小时前
非定长滑动窗口(持续更新)
算法·leetcode·职场和发展
YuTaoShao2 小时前
【LeetCode 热题 100】131. 分割回文串——回溯
java·算法·leetcode·深度优先
YouQian7722 小时前
Traffic Lights set的使用
算法
快乐飒男2 小时前
哈希表(c语言)
c语言·哈希算法·散列表
go54631584654 小时前
基于深度学习的食管癌右喉返神经旁淋巴结预测系统研究
图像处理·人工智能·深度学习·神经网络·算法
aramae4 小时前
大话数据结构之<队列>
c语言·开发语言·数据结构·算法
大锦终4 小时前
【算法】前缀和经典例题
算法·leetcode
想变成树袋熊4 小时前
【自用】NLP算法面经(6)
人工智能·算法·自然语言处理
cccc来财5 小时前
Java实现大根堆与小根堆详解
数据结构·算法·leetcode