目录
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的整数)
输出
#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
输出并结束语句
#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
嵌套三个循环
遍历所有三位数
输出满足条件的三位数
#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,输出
#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换位
以此类推
#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
输出天数
#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
#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;
}