1118的相应代码以及斐波那契函数

来源:互联网 发布:ysl 口红 知乎 编辑:程序博客网 时间:2024/06/05 11:55

#include<stdio.h>

#include<string.h>

#include<stdbool.h>

 

//测各种数据类型的长度

int main1()

{

int a;

char b;

double c;

flout d;

printf(“a=%d,b=%d,c=%d,d=%d”,sizeof(a),sizeof(b),sizeof(c),sizeof(d));

return 0;

}

 

int main2() //不同类型数值能表示的数值范围

{

unsigned int a=-10;

printf(“a=%u\n”,a);  //无符号的数值输出占位符用%u

 //这个的输出结果为4294967296 = 232次方-4是采用补码形式

//计算的

 

//int b=4294967296;   //error 不能输出 输出错误 因为数值太大 超出了范围

//printf(“b=%d\n”,b);

 

int b=6;

printf(“a+b=%u\n”,a+b);  //

 

return 0;

}

//数据类型界定变量范围

//变量名确定了首地址

//a=-10%d%u的输出结果都是2这是因为补码的问题 !!有问题

 

int main3()//intunsigned int的运算过程

{

int a=-2;

unsigned int b=1;

if((a+b)>=0)       //没有指定说明时默认类型是unsigned

printf(“1\n”);

else

printf(“0\n”)

printf(“a+b=%d\n”,a+b);   //指定说明了输出类型是 int

printf(“a+b=%u\n”,a+b);

return 0;

}

 

int main4()  //数据类型所能表示的范围是有限的

{

char a[1000];  //char类型所能表示的数值大小为-128~127

//所以a[i]的数值不能小于-128并且不能大于127

//若超出这个范围则数组后面将不被赋值

int i;

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

{

a[i]=-1-i;

//a[i]=-10-i;

}

printf(“%d\n”,strlen(a));   //255

printf(“%d\n”,i);       //1000

printf(“%d\n”,a[127]);   //-128

printf(“%d\n”,a[128]);  // 127 以补码的方式进行运算

return 0;

}

 

 

int main5()  //ASCII转换成大写字母

{

char c1,c2;

c1=’a’;

c2=’b’;

c1=c1-32;

c2=c2-32;

printf(“%c\n”,c1);

printf(“%c\n”,c2);

return 0;

}

 

int main6()  //intfloat之间的除法运算

{

printf(“3/5=%d\n”,3/5);

printf(“3.5/5=%f\n”,3.5/5);

printf(“3.5/5=%.2f\n”,3.5/5);

return 0;

}

 

 

 

 

int main7() //scanfprintf的运算机制

{

scanf(“input:%d,%d”,&a,&b);  //scanf在输入时一定要严格按着scanf的格式走

 //也就是在./a.outinput:1,2

printf(“a+b=%d\n”,a+b);

return 0;

}

 

int main8()   //bool类型 只有两个值 01  C语言中使用时需要头文件stdbool.h

{

bool a=0;

if(a==1)

printf(“1”);

else

printf(“idiot\n”);

return 0;

}

 

int main9()  //测试if(a=0)  if(0=a)  if(a==0)  if(0==a)

{

//if(a==0)  //此时输出结果为0

if(0==a)    //此时输出结果为0

//if(a=0)   //error 运算符左操作数无效

//if(0=a)  //此时输出结果为no

printf(“0\n”);

else

printf(“no\n”);

return 0;

}

 

int main10()

{

int i;

//for(i=10;i>0;i+2)   //i+n error 0101010101010..........

//for(i=0;i<10;i+3)   //i+n error  000000000000............

for(i=0;1<10;i++)

{

printf(“%d”,i)

}

return 0;

}

 

 

int main11()  //斐波那契函数的错误示例以及分析

{

int a[100]={1,1,2};  //在这里初始化,结果为i=2~100

 

//a[0]=1;   //在这里初始化 只显示 i=2345

//a[1]=1

int i;

for(i=2;a[i]<100;i++)  //for循环()中的和循环体中的i不是同一个,我们没有a[i]的值

{

a[i]=a[i-1]+a[i-2];

printf(“i=%d,a[i]=%d”,i,a[i]);

}

 

/*如果要用while循环(使用do...while循环同理,也是段错误)

while(a[i<100])   //错误原因与上面相同 ./a.out后会显示段错误

{

//任何循环语句中都不能把printf写在a[i]的前面

//否则会提示错误 在非结构或联合中请求成员a

a[i]=a[i-1]+a[i-2];

printf(“i=%d,a[i]=%d”,i,a[i]);

i++;   //在这里控制i的变量

}

*/

return 0;

}

若要在11中改为正确,则把循环体改为:a[i+1]=a[i]+a[i-1];

或将for语句改为a[i-1]<100即可

原创粉丝点击