C语言代码块

一、求某某范围内的闰年

#include<stdio.h>
	main()
{
	int i;
	
	
	for ( i = 0; i <= 5000; i++)
	{
	if ((i%4==0 && i%100!=0) || i%40==0)
	
		printf("%d\n",i); 
}
return 0;
}

如图:是求0到5000年内的闰年
在这里插入图片描述

  1. 非整百年:能被4整除的为闰年。(如2004年就是闰年,2100年不是闰年)
  2. 整百年:能被400整除的是闰年。(如2000年是闰年,1900年不是闰年)

二、把一个三位的数字,输出它的个位数,十位数、百位数。

代码如下:

#include<stdio.h>
#include<math.h>
 main()


{	int a,b,c,m;
	m=321;
	a=m%10;	//个位
	b=(m/10)%10;		//十位
	c=m/100;			//百位
		printf("%d%d%d\n",a,b,c);//输出个、十、百

	return 0;
}

三、if 的 嵌套

if(表达式1)	//若该条件满足时,执行下一个 if,不满足之直接到最后一个else
		if(表达式2)	//当条件满足时,执行语句1,不满足执行倒数第二个else
		语句 1;
		else
		语句	2;
else
语句3;
  • 注意:C语言中,else总是与它最近的未配对的if配对。
  • 例题:分段函数: {(x<0,y=0 },{0<=x<=50,y=x} , {x>50,y=x*x}
#include<stdio.h>
#include<math.h>
main()
{
float x,y;
scanf("%f",&x);
if(x>=0)
	if(x<=50)
	y=x;
	else
	y=pow(x,2);
else
	y=0;
	printf("%f",y);
	return 0;
}

四、在if分支或者else if 分支中内嵌不带else的if语句

语法如下:

语句1;
if(表达式1)
	{  
	if (表达式2)
	语句2;
	}
	else
	语句3;
  • 注意:语句1 可以放在第一个if上面,也可以放在语句3下面;
  • 例题:分段函数: {(x<0,y=0 },{0<=x<=50,y=x} , {x>50,y=x*x}
#include<stdio.h>
#include<math.h>
main()
{
float x,y;
scanf("%f",&x);
y=x;
if(x>=0)
{
	if(x>50)
	y=x*x;

}
else
	y=0;
printf("%f",y);
return 0;
}

五、switch语句

语句如下:

switch(表达式)
{
   case 常量/字符常量表达式 1:
      printf("..."); break ; 
      
   case 常量/字符常量表达式2:
      printf("..."); break ; 
	
	case 常量/字符常量表达式3 :
      printf("..."); break ; 

	default :
	     printf("..."); break ; 
}
return 0 ;
}
  • 注意:case 的表达式只能是常量表达式或者字符常量表达式。
  • 每个case的表达式不可一样,否则会矛盾报错。

例题如下:输入五级制成绩,90~100为A,80~89为B,70~70为C,60~69为D,60分以下为E,否则为“未参加考试”

#include<stdio.h>
#include<math.h>
main()
{
	char   grade;
	grade = getchar();
	grade=(grade>='A'&&grade<='Z')?grade : grade — 32; //若是小写字母转换成大写字母
	switch(grade)
{
	case 'A' : case 'B' :  //可以两个 case 在一行,执行一样的语句
	printf("90~100"); break;
	
	case 'C' :
	printf("80~89"); break;
	
	case 'D' :
	printf("70~79"); break;
	
	case 'E' :
	printf("60~69"); break;
	
	case 'F' :
	printf("<60"); break;
	
	default :
	printf ("未参加考试");
}
return 0;
}

六、switch的嵌套

1)switch嵌套switch

#include<stdio.h>
#include<math.h>
main()
{
	int a,b=0,c=1;
	scanf("%d,%d",&a,&b);
	switch(a)
	{
	case 1:

	switch(b)
	{
	case 2:
		b++;

	case 4:
		c++;

	default:
		b++;c++;
	}
	break;

	case 3:
		b+=2;c+=2;break;
	default:
		b+=3;c+=3;
}

	printf("%d\n%d\n",b,c);



}

2)switch嵌套 if...else

#include<stdio.h>
#include<math.h>
  int main()
{
	float a,b;
	char c;
	scanf("%f%c%f",&a,&c,&b);
	switch(c)
	{
	case '+':

		printf("%f\n",a+b);break;

	case '-':
		printf("%f\n",a-b);break;

	


	case '*':
		printf("%f\n",a*b);break;


	case '/':
		if(b==0)
		printf("错误,b不能为零");
		else
			printf("%f\n",a/b);break;

	default:
		printf("哈哈");
	}
	return 0;


}
  • 当输入 17*2(回车)时,输出34.0000
  • 当输入17/0(回车)时。输出提示 错误,b不能为零

七、选择结构,输入一个字符,判断是数字、小写字母、大写字母、还是其他字符

代码如下

  #include<stdio.h>
#include<math.h>
  int main()
{

char a;
a=getchar();
if(a>='0'&&a<='9')   //因为输入的是字符,所以需要把数字用引号引起来
printf("数字%c\n",a);


else if(a>='A'&&a<='Z')
	printf("大写字母%C\n",a);

else if(a>='a'&&a<='z')
	printf("小写字母%C\n",a);

else
	printf("其他字符%C\n",a);


}

八、输入三个数,比较大小,输出最大和最小数。

代码块:

#include<stdio.h>
#include<math.h>
  int main()
{

int a,b,c,max,min;
scanf("%d,%d,%d",&a,&b,&c);
max=a>b?a:b;
min=a<=b?a:b;
if(c>max)
	max=c;

else if(c<min)
	min=c;


printf("%d,%d\n",max,min);
}

九、求一年中的某年某月某日是第几天

1)、第一种写法

#include<stdio.h>

  int main()
{

int day,month,year,sum=0;
scanf("%d.%d.%d",&year,&month,&day);
if(month>1)
	sum+=31;

if(month>2)
	if((year%4==0&&year%100!=0)||year%400==0)
		sum+=29;
	else 
		sum+=28;

if(month>3)
	sum+=31;


if(month>4)
	sum+=30;



if(month>5)
	sum+=31;



if(month>6)
	sum+=30;

if(month>7)
	sum+=31;

if(month>8)
	sum+=31;


if(month>9)
	sum+=30;


if(month>10)
	sum+=31;


if(month>11)
	sum+=30;   写到11月


	sum+=day;  //12月是自己写的某天加进去

printf("%d\n",sum);

	
	}

十、输出图形*号

#include<stdio.h>
#include<math.h>

int main()
{
	
	int i,j,k;		 
	for(i=1;i<=8;i++) //行     1           2            3
	{
	for(j=8;j>=1;j--)//空      11111111   11111111     11111111
		printf(" ");
	for(k=1;k<=2*i-1;k++)//输出*号  1      3			5
		printf("*");
		printf("\n");


	}
	
		return 0;
}
   
		

//

十一、输入十个数,求最大最小,偶数、奇数个数

代码:

#include<stdio.h>
#include<math.h>

int main()
{
	
	int i,x,odd=0,even=0,max,min;
	for(i=1;i<=10;i++)
	{


	scanf("%d",&x);
	if(i==1) 
	{	max=x; min=x;  }

	if(x%2==0)
		even+=1;

	if(x%2!=0)
		odd+=1;

	if(x>max)
		max=x;

	if(x<min)
		min=x;
	}
	printf("%d\n",max);
	printf("%d\n",min);
	printf("%d\n",odd);
	printf("%d\n",even);
}
   

在这里插入图片描述

十二、小写字母变成大写字母

代码

#include<stdio.h>
#include<math.h>

int main()
{
	
	char c;
	scanf("  %c",&c);
	
		if(c>='a'&&c<='z')
		c=c-32;
	printf(" %c\n",c);

}

在这里插入图片描述

十三、输入四个数,求最大、最小值

最小值代码:

#include<stdio.h>
#include<math.h>

int main()
{
	
	int i,x,min;
	for(i=1;i<=4;i++)
	{


	scanf("%d",&x);
	if(i==1) 
	{	 min=x;  }



	if(x<min)
		min=x;
	}

	printf("%d\n",min);

}

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

最大值代码:

#include<stdio.h>
#include<math.h>

int main()
{
	
	int i,x,max;
	for(i=1;i<=4;i++)
	{


	scanf("%d",&x);
	if(i==1) 		//注意:这里是 等于号
	{	max=x; }


	if(x>max)
		max=x;


	}
	printf("%d\n",max);

}
   

十四、一维数组:输入一个数,找到它的位置

代码:

#include<stdio.h>
#include<math.h>

int main()
{

	int ft,i,x,n,a[15]={1,2,4,5,7,0,8,11,13,15,67,99,100,22,33};
	scanf("%d",&x);

	for(i=0;i<=14;i++)

	{		if(a[i]==x)
			{ft=1;
			n=i;}
		
			

	}		
	if(ft==1)
		printf("%d找到了,在第%d位置",x,n);
	else
		printf("未找到");
	
}
   

在这里插入图片描述

十五、在一维数组,输入一个数,删除这个数的位置,比如输入4,删除数组中4的位置

代码:

#include<stdio.h>
#include<math.h>

int main()
{

	int i,del,a[15]={1,2,4,5,7,0,8,11,13,15,67,99,100,22,33};

			scanf("%d",&del);
			del=del-1;
	for(i=del;i<14;i++)  
	a[i]=a[i+1];		

	for(i=0;i<=13;i++) 

		printf("%4d",a[i]);
	printf("\n");
	
}
   

在这里插入图片描述

**可见删除了第四个位置5这个数**

十六、将一位数组左循环移位。移位次数由键盘输入

代码:

#include<stdio.h>
#include<math.h>

int main()
{

	int a[8]={1,2,3,4,5,6,7,8};
	int i,n,t,p;

		scanf("%d",&n);
		for(i=1;i<=n;i++)
		{

		t=a[0];
		for(p=0;p<=6;p++)	//若输入的数是2,则
			a[p]=a[p+1];  //第一次:a[0]=a[0+1]=2  a[1]=3-----a[6]=8  a[7]=1
						//第二次:a[0]=a[0+1]=3   a[1]=4------a[6]=1  a[7]=2

		a[7]=t;		//a[7]第一次是1;第二次是2


		}
		for(i=0;i<=7;i++)

		printf("%4d    ",a[i]);
	
	
}
   
   

在这里插入图片描述

十七、以时间为随机数种子的随机数

#include<stdio.h>

#include<time.h>
#include<stdlib.h>
int main()
{

	srand((int)time (0));  //这里也可以写成   srand((int)time (NULL));
	  
		
		
	
		
	
	printf("%6d\n",rand());
		printf("%6d\n",rand());
			printf("%6d\n",rand());
			return 0;
	
	
}

判断一个数是否为素数(质数)

#include<stdio.h>

#include"math.h"
#include<stdlib.h>
int main()
{
		
		int a,i,k,z;
		scanf("%d",&a);
		k=a/2;
		for(i=2;i<=k;i++)
			if(a%i==0) break; 
			if(i>k)
			printf("%d是质数",a);  
			else
				printf("%d不是质数",a);
 
} 
  • 14
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值