重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
main() {
10年积累的成都网站设计、成都网站制作经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有常熟免费网站建设让你可以放心的选择与我们合作。
int a=1,b=2,c=5,d=4,x=0; if(ab) { if(cd) x=1;
else if(ac) { if(bd) x=2;
else x=3; }
else x=6; }
else x=7;
printf("%d",x);
getch();
}
以上代码已经整理好了。因为第一if已经不满足,直接执行最后一个else,所以,结果是7. 针对这种问题,最好的方法是先用大括号把各个子句分好。
int xxx()//是闰年反加真,不是返回0
{
int year;
while(scanf("%d",year)!=1);//while用来保证正确读到数字
return year%4==0 year%100 || year%400 == 0;
}
在函数中读数字是上面这样的,下面是函数接收一个参数的写法:
int yyy(int year)//是闰年反加真,不是返回0
{
return year%4==0 year%100 || year%400 == 0;
}
我的写法一般人第一次看会不习惯!!!
if函数,说的是假如,然后:
分两种:if……printf;if……else
第一种:if……printf,假如一种情况,直接输出结果。
if……else,是假如一种情况,不发生这种情况该怎样运行:
if()
语句1
else
语句2 这样是单个语句,既if和else各控制一个语句
再有一句是复合语句
if()
语句1
else
{
语句2
语句3
}
这样就是复合的,else里面包括2个语句,else 只包括语句1 语句2是独立的,因为它没有大括号{ }括起来,
在c语言中用没有函数判定一个变量的类型,可以使用sizeof来判断变量大小。
示例:
#include stdio.h
#include stdlib.h
int main(int argc,char **argv) //主程序
{
//对C语言内置类型的所占字节数的测试
printf("size of char is: %d\n",sizeof(char)); //字符型数据所占字节数 、
printf("size of short is: %d\n",sizeof(short)); //短整形数据所占字节数
printf("size of int is: %d\n",sizeof(int )); //整形数据
printf("size of short int is: %d\n",sizeof(short int)); //短整形
printf("size of long int is: %d\n",sizeof(long int)); //长整形数据
printf("size of float is: %d\n",sizeof(float)); //浮点型数据
printf("size of double is: %d\n",sizeof(double)); //双精度数据
//对字符及字符串数组所占字节数的测量
char a[] ={'a','b','c','d','e'};
printf("size of a[] is: %d\n",sizeof(a)); //输出数组a[]所占字节数
char b[]={"abcde"}; //初始化字符串b
printf("size of b[] is: %d\n",sizeof(b)); //数组b[]
char c[][3]={{'a','b','c'},{'d','e','f'},{'g','h','i'},{'j','k','l'}}; //初始化二维字符型数组
printf("size of c[][] is: %d\n",sizeof(c)); //二维数组c所占字节数
printf("size of c[0] is: %d\n",sizeof(c[0])); //二维数组中的某行所占的字节数,例如第0行
printf("size of c[0][0] is: %d\n",sizeof(c[0][0])); //某行某个元素,例如第0行第0个元素
//对指针所占字节数的测量
char *p=0;
printf("size of *p is: %d\n",sizeof(p)); //字符型指针
system("pause");
return 0;
}
扩展资料
使用sizeof()计算数组长度
将sizeof用于 expr是并没有计算expr的值。特别是在sizeof *p中,指针p可以是一个无效地址,因为不需要对p做解引用操作。
对char类型或值为char类型的表达式做sizeof操作结果为1。对引用类型做sizeof操作,将返回存放此引用类型对象所需的内存空间大小。
对指针做sizeof操作,将返回存放指针所需的内存大小,注意,如果要获取该指针指向对象的大小,则必须对该指针进行解引用。对数组做sizeof操作等效于对其元素做sizeof操作的结果乘上数组元素的个数。
因为sizeof返回整个数组在内存中的存储长度,所以用sizeof数组的结果初一sizeof其元素类型的结果,即可求出数组元素的个数:int sz = sizeof(ia)/sizeof(*ia);
通常将8位的块作为一个字节,32位或4个字节作为一个 “字”。一般的short为半个机器字长,int为一个机器字长。
#include
"stdio.h"
int
s(int
a)
{
return(a%2);
}
main()
{
int
x;
printf("请输入一个整数:");
scanf("%d",x);
if(s(x)==1)
printf("%d是一个奇数",x);
else
printf("%d是一个偶数",x);
}
先编写一个判断是素数还是偶数的函数,偶数就返回0,否则就返回1,然后在主函数调用函数,根据返回值判断素数还是偶数。
这个是条件编译命令,表示SPEND为真时,下面的语句才能加入编译器进行编译,为假时,下面的语句不参与编译。可以去掉defined
#if 1 #if defined(SPEND) #if 0 #if defined(SPEND)
#endif和 #endif 当SPEND为真时,效果一样, #endif 和 #endif 当SPEND为假时,效果一样。
比如:
main()
{
char a[]="a参加了编译";
char b[]="b参加了编译";
#if defined(M)
printf("%s\n",a);
#endif
printf("%s\n",b);
}
当M为真时,编译器先把代码变成:
main()
{
char a[]="a参加了编译";
char b[]="b参加了编译";
printf("%s\n",a);
printf("%s\n",b);
}
再编;
当M为假时,会变成这样再编:
main()
{
char a[]="a参加了编译";
char b[]="b参加了编译";
printf("%s\n",b);
}