ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

C语言入门需要常刷的题(建议收藏)

2021-10-09 18:01:28  阅读:144  来源: 互联网

标签:cut 入门 int 常刷 month printf C语言 tomorrow today


题目

前言

以下代码均无注释,需自行理解,新手建议收藏,反复食用

(1)根据今天的日期输出明天的日期

注意闰年2月,每年的12月31号等特殊日期

#include<stdio.h>

struct date{
	
	int day;
	
	int month;
	
	int year;
};
int daysofnumber(struct date n);

int ifrun(struct date n);

int main()
 {
 	struct date today,tomorrow;
 	
 	printf("输入今天的日期\n");
 	
 	scanf("%d %d %d",&today.day,&today.month,&today.year);
 	
 	if(today.day!=daysofnumber(today))
 	
 	{
 		tomorrow.day=today.day+1;
 		
 		tomorrow.month=today.month;
 		
 		tomorrow.year=today.year;
	 }
	 else if(today.month==12)
	 {
	 	tomorrow.day=1;
	 	
 		tomorrow.month=1;
 		
 		tomorrow.year=1;
	 }
	 else
	 {
	 	tomorrow.day=1;
	 	
 		tomorrow.month=today.month+1;
 		
 		tomorrow.year=today.year;
	 }
	 printf("%d %d %d\n",tomorrow.day,tomorrow.month,tomorrow.year) ;
	 
 	return 0;
 }
 int daysofnumber(struct date n)
 
 {
 	int days;
 	
 	int a[12]={31,28,31,30,31,30,31,31,30,31,30,31};
 	
 	if(n.month=ifrun(n))
 	
 	days=29;
 	
 	else
 	
 	days=a[n.month-1];
 	
 	return days;
 }
 int ifrun(struct date n)
 {
 	int leap=false;
 	
 	if(n.year%4==0&&n.year%100!=0||n.year%400==0)
 	
 	leap=true;
 	
 	return leap;
 }

(2) 求符合给定条件的整数集

在这里插入图片描述

解法1

#include<stdio.h>
int main()
{
	int a;
	int cut=0;
	scanf("%d",&a);
	int i,m,n;
	i=a;
	while(i<a+4)
	{
		m=a;
		while(m<a+4)
		{
			n=a;
			while(n<a+4)
			{
				if(i!=m&&i!=n&&m!=n)
				{
					printf("%d%d%d",i,m,n);
					cut++;
					if(cut==6)
					{
						printf("\n");
						cut=0;
					}
					else
						printf(" ");
				}
				n++;
			}
			m++;
		}
		i++;
	}
	
}

解法二

#include<stdio.h>
int main()
{
	int a;
	int cut=0;
	scanf("%d",&a);
	int i,m,n;
	for(i=a;i<=a+3;i++)
	{
		for(m=a;m<=a+3;m++)
		{
			for(n=a;n<=a+3;n++)
			{
				if(i!=m&&i!=n&&m!=n)
				{
					printf("%d%d%d",i,m,n);
					cut++;
					if(cut==6)
					{
						printf("\n");
						cut=0;
					}
					else
						printf(" ");
					}
			}
		}
	}
}

上面两组代码中也可以改动printf,if语句,最终的结果是一样的;

(3)经典水仙花

水仙花数是指一个 n 位数,
例如三位数,它的每个位上的数字的 3次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)。以此类推

————————————————

#include<stdio.h>
#include<math.h>
int main()
{
	int n;
	scanf("%d",&n);
	int i=1;
	int max=1;
	while(i<n)
	{
		max*=10;
		i++;
	}
	int t,a,b;
	for(i=max;i<(max*10);i++)
	{
		t=i;
		int sum=0;
		while(t>0)
		{
			a=t%10;
			b=pow(a,n);
			sum+=b;
			t/=10;
		}
		if(sum==i)
		{
		printf("水仙花数为%d\n",i);}
	}
}

(4)打印九九乘法口诀表

#include<stdio.h>
int main()
{
	int a=1,b=1;
	int cut=0;
	for(a=1;a<=9;a++)
	{
		for(b=1;b<=a;b++)
		{
		printf("%d*%d=%2d",a,b,a*b);
		printf(" ");
		}
		cut++;
		printf("\n");
	}
 } 

(5)打印两个数p,q之间的素数

打印两个数p,q之间的素数, 并求出这两个数之间素数的个数cnt,和这两个数之间所有素数之和sum;

#include<stdio.h>
int main()
{
	int p,q;
	scanf("%d %d",&p,&q);
	int i,m;
	int cnt=0;
	int sum=0;
	for(i=p;i<=q;i++)
	{
		int aaa=1;
		for(m=2;m<i-1;m++)
		{
			if(i%m==0)
			{
				aaa=0;
				break;
			}
		}
			if(aaa)
			{
				cnt++;
				sum+=i;
				printf("%d\n",i);
			}
		
	}
	printf("%d\n",cnt);
	printf("%d\n",sum);
}

(6)求分数的最简式

例如12/24=1/2;

输入格式16/36
输出格式4/9

#include<stdio.h>
int main()
{
	int fenzi,fenmu;
	scanf("%d/%d",&fenzi,&fenmu);
	int a=fenzi,b=fenmu;
	int p;
	int i,min;
	if(a>b)
	min=b;
	else
	min=a;
	for(i=2;i<=min;i++)
	{
		if(a%i==0)
		{
			if(b%i==0)
			p=i;
		}
	}
	int newzi,newmu;
	newzi=a/p;
	newmu=b/p;
	printf("%d/%d\n",newzi,newmu);
}

标签:cut,入门,int,常刷,month,printf,C语言,tomorrow,today
来源: https://blog.csdn.net/qq_59708493/article/details/120649688

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有