嵌入式课程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;
}
相关推荐
搬砖的小码农_Sky3 小时前
C语言:数组
c语言·数据结构
Swift社区4 小时前
LeetCode - #139 单词拆分
算法·leetcode·职场和发展
Kent_J_Truman4 小时前
greater<>() 、less<>()及运算符 < 重载在排序和堆中的使用
算法
先鱼鲨生4 小时前
数据结构——栈、队列
数据结构
一念之坤4 小时前
零基础学Python之数据结构 -- 01篇
数据结构·python
IT 青年5 小时前
数据结构 (1)基本概念和术语
数据结构·算法
熬夜学编程的小王5 小时前
【初阶数据结构篇】双向链表的实现(赋源码)
数据结构·c++·链表·双向链表
Dong雨5 小时前
力扣hot100-->栈/单调栈
算法·leetcode·职场和发展
SoraLuna5 小时前
「Mac玩转仓颉内测版24」基础篇4 - 浮点类型详解
开发语言·算法·macos·cangjie
liujjjiyun5 小时前
小R的随机播放顺序
数据结构·c++·算法