C语言.docx

上传人:b****6 文档编号:7649177 上传时间:2023-05-11 格式:DOCX 页数:11 大小:17.09KB
下载 相关 举报
C语言.docx_第1页
第1页 / 共11页
C语言.docx_第2页
第2页 / 共11页
C语言.docx_第3页
第3页 / 共11页
C语言.docx_第4页
第4页 / 共11页
C语言.docx_第5页
第5页 / 共11页
C语言.docx_第6页
第6页 / 共11页
C语言.docx_第7页
第7页 / 共11页
C语言.docx_第8页
第8页 / 共11页
C语言.docx_第9页
第9页 / 共11页
C语言.docx_第10页
第10页 / 共11页
C语言.docx_第11页
第11页 / 共11页
亲,该文档总共11页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

C语言.docx

《C语言.docx》由会员分享,可在线阅读,更多相关《C语言.docx(11页珍藏版)》请在冰点文库上搜索。

C语言.docx

C语言

负数的补码是:

符号位不变,其余各位求反,末位加1,

反码是:

符号位为1,其余各位求反,但末位不加1.

在编写c程序语言时,所有的标点符号都应该为英文状态下的,包括括号。

用辗转相除法求.

比如求x,y的最大公约数

x=ay+b

先讨论(x%y)的余数b是否等于0,如果是,则y为最大公约数.否则将y的值赋给x,把b的值赋给y然后在继续对b讨论.一直循环下去直到b=0时的y值就是所求的最大公约数了.

求两个数字的最大公约数和最小公倍数的方法:

可以先用辗转相除法求出这两个数的最大公约数,

再用这两个数的乘积除以它们的最大公约数,就得到它们的最小公倍数

C语言中单精度浮点型的数据输出形式为%f,如果以%lf的形式输出,程序运行可能会得到错误的结果,或者是出现初错误。

Test001

#include

voidmain(){

inta=5,b=10,c=20;

printf("%d\n",a++);

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

printf("d%n",++b);

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

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

}

Test002

#include

main(){

intx,sum;

printf("请输入x的值\n",x);

scanf("%d",&x);

if(x<=0)sum=5+x;

if(x>0&&x<10)sum=100-x;

if(x>=10)sum=x*7-6;

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

}

Test003

#include

main()

{

inta;

printf("请输入a的值\n",a);

scanf("a=%d",&a);

if(a<50)

printf("空气质量为优\n");

if(a>51&&a<99)

printf("空气质量为俩\n");

if(a>100)

printf("空气质量为差\n");

 

}

Test005

#include

main(){

inta,n,s;

printf("请输入a,n的值",a,n)

scanf("a=%d,n=%d",&a,&n)

错误编程test005

#include

main(){

intx;

printf("请输入x的值",x);

scanf("x=%d",&x);

switch(x<0?

-1:

x>0?

1:

0);

printf("x=%d\n",x);

}

错误编程test6

#include

main(){

floata,b,c,d,t;

prinft(“输入a,b,c,d四个数”,a,b,c,d);

scanf("a%d,b%d,c%d,d%d",&a,&b,&c,&d);

if(a>b)

t=b;

b=a;

a=t;

if(a>c)

t=c;

c=a;

a=t;

if(a>d)

t=a;

a=d;

d=t;

if(b>c)

t=b;

b=c;

c=t;

if(b>d)

t=b;

b=d;

d=b;

if(c>d)

t=c;

c=d;

d=c;

printf("a=%d,b=%d,c=%d,d=%d",a,b,c,d);

 

}

程序编译时能通过,但是执行时不能通过

#include

main(){

floata,b,c,d,t;

prinft("请输入a,b,c,d的值",a,b,c,d);

scanf("a=%d,b=%d,c=%d,d=%d",&a,&b,&c,&d);

if(a>b)

t=b;

b=a;

a=t;

if(a>c)

t=c;

c=a;

a=t;

if(a>d)

t=d;

d=a;

a=t;

if(b>c)

t=c;

c=b;

b=t;

if(b>d)

t=d;

d=b;

b=t;

if(c>d)

t=d;

d=c;

c=t;

printf("a=%d,b=%d,c=%d,d=%d",a,b,c,d);

 

}

不懂问题

inta=-2;

printf(“%u\n”,a);//65534

1unsigneda=3;

|-2|+|65534|=65536

2

|-2|+|65534|=65536

|-2|+|65534|=65536

intfib(intn)

{intk;

if((n==1)||(n==2))k=1;

elsek=fib(n-1)+fib(n-2);

return(k);

}

#include

main()

{intn;

{printf("inputn:

");

scanf("%d",&n);}

printf("fib(%d)=%d\n",n,fib(n));}

打印出*

#include

main(){

inta,b;

for(a=1;a<=5;a++){

for(b=1;b<=5;b++)

printf("*");

printf("\n");}}

P81

#include

main(){

inta[]={12,23,43,123,12,43,654,76,76};

inti,j;

for(i=1;i<=3;i++){

for(j=1;j<=3;j++)

printf("%d,",a[j]);

printf("\n");}}

P80

#include

main(){

inta,b;

for(a=1;a<=20;a++){

for(b=1;b<=a;b++)

printf("*");

printf("\n");}}

指针变量初始化的值是该指针类型的地址值

P80

#include

#include

main(){

inti,j,d,sum=0;

inta[3][4]={{1,-2,3,-4},{1,5,0,6},{7,3,0,3}};

for(i=0;i<3;i++){

for(j=0;j<4;j++)

if(a[i][j]==0)break;

elseif(a[i][j]>0){sum=sum+a[i][j];

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

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

}

实现行列互换

#include

#include

main(){

inta[2][3]={{1,2,3},{4,5,6}};

intb[3][2];

inti,j;

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

for(j=0;j<=2;j++)

b[j][i]=a[i][j];

for(i=0;i<=2;i++){

for(j=0;j<=1;j++)

printf("%d",b[i][j]);

printf("\n");}}

怎么判断它是否为行列式的项,首先是看行下标和列下标分别有没有重复的,有重复的就不是。

没有重复的话,看上面讨论的那个逆序数,奇数为负号,偶数为正号。

将一个小写的字符串用函数的形式转换成大写的字符串。

#include

voidcov(char*s)

{

inti,count=0;

i=0;

while(s[i]!

='\0')

{

count++;

i++;

}

for(i=0;i

{

if(s[i]>=97&&s[i]<=122)

s[i]=s[i]-32;

}

}

intmain()

{

charstr[100];

printf("Pleaseinputsomeletters:

\n");

scanf("%s",str);

cov(str);

printf("Afterchangeletters:

\n");

printf("%s\n",str);

return0;

}

编写一个函数实现矩阵的置换

Tra(a,m,n,c)

Intm,n;

doublea[],c[];

{intk,j;

For(k=0;k

for(j=0;j

c[j*m+k]=a[k*n+j];

return;}

编写一个函数,返回一组数组中的次大数

方法一:

#include

#include

intfindSecond(int*a,intsize)

{

inti,max,s_max;

max=a[0];//最大值

s_max=a[1];//次大值

for(i=0;i

{

if(a[i]>max)

{

s_max=max;//更新最大值和次大值

max=a[i];

}

elseif(a[i]s_max)//更新次大值

s_max=a[i];

}

returns_max;

}

intmain()

{

intsecond,a[]={111,23,3,5,652,2,3};

second=findSecond(a,sizeof(a)/sizeof(a[0]));

printf("次大值为:

%d\n",second);

system("pause");

return0;

}

方法二:

#include

#include

/*

写一个函数找出一个整数数组中,第二大的数要求效率尽可能高

*/

intfind(int*a,intn)//从数组的第二个元素开始查找

{

inti,second=a[1];

for(i=1;i

{

if(a[i]>second)

second=a[i];

}

returnsecond;

}

intfindSecond(int*a,intsize)

{

inti,first,second;

first=second=a[0];

for(i=1;i

{

if(a[i]>first)

{

second=first;

first=a[i];

}

elseif(a[i]second)

second=a[i];

}

//最大值和次大值相等(数组的第一个元素为最大值的时候)

if(first==second)

{

second=find(a,size);//从数组的第二个元素开始找一个最大值的即为次大值

}

returnsecond;

}

intmain()

{

inta[]={12012,3,45,5,66,232,65,7,8,898,56,878,170,13,5};

intsecond=findSecond(a,sizeof(a)/sizeof(a[0]));

printf("次大值为:

%d\n",second);

system("pause");

return0;

}

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2