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

题目

前言

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

(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) 求符合给定条件的整数集

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

解法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);
}
上一篇:Coffee and Coursework (Easy version)


下一篇:pycharm新建文件 自动设置文件的签名