来自菜鸟的日程-------c语言基础篇3

本文探讨了C语言中不能用于switch的参数类型,介绍了assert断言的用途及其在DEBUG模式下的作用,澄清了assert不是函数而是宏的事实。此外,文章通过示例讲解了if与switch的区别,并提供了练习基本能力的代码,包括计算1-100的和、奇数和、偶数和,以及判断素数和求最大值的问题。

#include<stdio.h>
#include<ctype.h>
#include<math.h>
#include<assert.h>
/*
1、不能做switch的参数类型有哪些?float double (必须是一个整型)
2、断言
assert:断言===》DEBUG
asser(n!=1)
用户版本:release
3、断言是函数吗?不是,=》宏 sizeof=》关键字
4、if和switch的区别:
if:不管有多少次比较,都会一一进行比较
switch:>=4后被优化为一次比较===》跳转表cmp
/
/

例:写一个函数:求1-100的和,1-100奇数的和,1-100偶数的和

 void Sum(int n)//n  100
 {
	 int Sum=0;
	 int SumOdd=0;//奇数
	 int SumEve=0;//偶数
	 for(int i=1;i<=n;i++)
	 {
		 Sum+=i;
	 }
	 for(int i=1;i<=n;i+=2)
	 {
		 SumOdd+=i;
	 }
	 for(int i=2;i<=n;i+=2)
	 {
		 SumEve+=1;
	 }
	 printf("Sum==>%d",Sum);
	 printf("SumOdd==>%d",SumOdd);
	 printf("SumEve==>%d",SumEve);
 }
 int main()
 {
	 Sum(100);
	 getchar();
	 return 0;
 }

*/

/*

int main()
{
	int i;
	for(i=0,printf("#1:%d\n",i);printf("#2:%d\n",i),i<3;i++,
		printf("#3:%d\n,i"))
    {
	printf("语句块\n" ) ;
	}
}

*/

/*

void Fun(char ch)//ch:等级 A  B
{
	 switch(ch)
	 { 
	 case'A':
		 printf("90-100\n");
		 break;
     case'B':
		 printf("80-90\n");
		 break;
	 case'C':
		 printf("70-80\n");
		 break;
	 case'D':
		 printf("60-70\n");
		 break;
     default:
	 printf("挂科啦\n");
	 break;
	 }
}
int main()
{
    char*str="abcd";
	char i='a';
	float i=12.5f;
	Fun('A');
	Fun('B');
	return 0;
	}

*/

/*
int a = 10;
if(a == 1)
{printf("dfs");}
else if(a == 4)
{printf("dfs");}
else if(a == 6)
{printf("dfs");}
else if(a == 5)
{printf("fdsfas");}
*/

开关语句:

//int i=2;
	//switch(i)
	//{
	//case  1:
	//printf("1\n");
	//break;
	//case  2:
	//printf("2\n");//不按顺序执行,而是直接跳到2执行
	//break;
	//case 3:
	//printf("3\n");
	//break;
	//case 4:
	//	printf("4\n");
	//break;
	//}
 //没有break时会一直执行,直到遇到break才停止

//switch开关
/*

//求平方根?
//float和0比较:-0.000001 0.000001

void Fun(int a,int b,int c)
{
 int d=b*b-4*a*c;
 float x1,x2;
	 if (a==0)
	{
		x1==x2==-c/(float)b;
	 }
	 if(d<0)
		{
		printf("d<0==>无解\n");
		return;
		}
	   else if (d==0) 
	   {
	   x1==x2==-b/(float)2*a;
	   printf("d==0==>%f,%f\n",x1,x2);
	 }
	   else
	   {
	   x1= (-b+sqrt((float)d))/(2*a);//sqrt求平方根
	   x2 = (-b-sqrt((float)d))/(2*a);
	   printf("d>0==>%f,%f\n",x1,x2);
	   }
}
int main()
{
Fun(1,1,2);
Fun(1,2,4);
Fun(1,2,2);

*/

/*
//判断一个数字是否为素数?

#define SIZE 10
bool IsPrime(int n)
{
	asser(n!=1)//asser:断言
	if(n==1)
	{
		return false;
	}
	 for(int i=2;i<n;i++)
	 {
		 if(n%i==0)
		 {
			 return false;
			 }
			 }
	 return true;
    }
 */

/*比大小

int Max2(int a,int b)
{
return a>b?a:b;
}

求三个数的最大值 ?必须依赖求两个数的最大函数

int Max3(int a,int b,int c)
{
	return Max2(Max2(a,b),c);
 }

int max=Max3(10,20,30);
return 0;

*/

/*
bool flg=IsPrime(1);
printf("%d\n",flg);
*/
/*
//'0'===>48   0


char ch2='1';
	if(isdigit(ch2))
	{
		printf("isdight\n");
	}
	char ch='a';
    if(isalpha(ch))//判断一个字符是否为字母    返回非零的值
{
	printf("true");
}
else 
{printf("false");
}

*/

/*

int c;
int b=(a=20,c=30);
printf("%d\n",b);//30

*/

//以上程序是练习基本能力的哦~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值