C语言学习文档.docx

上传人:b****5 文档编号:7914348 上传时间:2023-01-27 格式:DOCX 页数:20 大小:17.21KB
下载 相关 举报
C语言学习文档.docx_第1页
第1页 / 共20页
C语言学习文档.docx_第2页
第2页 / 共20页
C语言学习文档.docx_第3页
第3页 / 共20页
C语言学习文档.docx_第4页
第4页 / 共20页
C语言学习文档.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

C语言学习文档.docx

《C语言学习文档.docx》由会员分享,可在线阅读,更多相关《C语言学习文档.docx(20页珍藏版)》请在冰豆网上搜索。

C语言学习文档.docx

C语言学习文档

多个空格变一个空格

#include

main()

{

charc;

intspc;

spc=0;

while((c=getchar())!

=EOF)

{

while(c=='')

{

++spc;

c=getchar();

}

if(spc>=1)

{

putchar('');

spc=0;

putchar(c);

}

else

putchar(c);

}

}

计数A到Z

#include

//#defineIN1

//#defineOUT0

main()

{

intE,state,count,f;

//state=OUT;

//state=IN;

count=0;

f=0;

while((E=getchar())!

=EOF)

{

while(E>='a'&&E<='z')

{

++count;

E=getchar();

}

if(count>=1)

{

++f;

count=0;

}

//else

//state=OUT;

}

printf("%d",f);

}

括号匹配

#include

main()

{

charc;

intcount1=0,count2=0,count3=0;

while((c=getchar())!

=EOF)

{

if(c=='(')

{

count1++;

}

if(c==')')

{

count1--;

}

if(c=='[')

{

count2++;

}

if(c==']')

{

count2--;

}

if(c=='{')

{

count3++;

}

if(c=='}')

{

count3--;

}

}

if(count1==0)

{

printf("括号配对成功\n");

}else

{

printf("括号配对失败\n");

}

if(count2==0)

{

printf("中括号配对成功\n");

}

else

{

printf("中括号配对失败\n");

}

if(count3==0)

{

printf("大括号配对成功\n");

}

else

{

printf("大括号配对失败\n");

}

}

面积

#include

#include

main()

{

intx[3],y[3];

inti,j;

floatp,s,a,b,c;

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

{

scanf("%d",&x[i]);

}

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

{

scanf("%d",&y[j]);

}

a=sqrt((x[0]-x[1])*(x[0]-x[1])+(y[0]-y[1])*(y[0]-y[1]));

b=sqrt((x[1]-x[2])*(x[1]-x[2])+(y[1]-y[2])*(y[1]-y[2]));

c=sqrt((x[0]-x[2])*(x[0]-x[2])+(y[0]-y[2])*(y[0]-y[2]));

p=(a+b+c)/2.0;

s=sqrt(p*(p-a)*(p-b)*(p-c));

printf("%f\n%f\n%f\n%f\n%f\n",a,b,c,p,s);

}

删除表中的重复结点

voidpurLinkList(LinkListh)//删除重复结点

{

LinkListp,q,r;

p=h->next;

if(p==NULL)return;

while(p->next)

{

q=p;

while(q->next)//从p的后继结点开始查找

{

if(q->next->data==p->data)

{

r=q->next;//找到重复结点,用r指向,删除r

q->next=r->next;

free(r);

}

else

q=q->next;

}

p=p->next;

}

}

voidmain()

{

LinkListh=createLinkList3();

printf("从键盘输入的单链表h为:

");

printLinkList(h);

purLinkList(h);

printf("删除重复结点后的单链表h为:

");

printLinkList(h);

}

删除相同的数

#include

main()

{

intc;

intn;

intarry[10];

for(c=0;c<10;c++)

{

scanf("%d",&arry[c]);

}

for(c=0;c<10;c++)

{

printf("%d\t",arry[c]);

}

printf("\n");

printf("输入一个数:

\n");

scanf("%d",&n);

for(c=0;c<10;c++)

{

if(a==arry[c])

{

while(c<9)

{

arry[c]=arry[c+1];

c++;

}

}

}

for(c=0;c<9;c++)

{

printf("%d\t",arry[c]);

}

}

输入10个数输出最大值最小值,和平均数

#include

main()

{

intx[10];

inti;

intmax,min;

floatsum,avg;

sum=0;

avg=0;

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

{

scanf("%d",&x[i]);

}

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

{

max=x[0];

min=x[0];

if(x[i]>max)

{

max=x[i];

}

elseif(x[i]

{

min=x[i];

}

sum=sum+x[i];

avg=sum/10;

}

printf("max=%d\nmin=%d\nsum=%f\navg=%f\n",max,min,sum,avg);

}

顺序查找

intlocationSeqList(SeqList*l,datatypex)

{

inti=0;

while(i<=l->last&&l->data[i]!

=x)

i++;

if(i>l->last)

return-1;

else

returni;//返回的是下标

}

voidcreateST(ST*st)//创建顺序存储静态查找表

{

inti=1,k;

st->elem=malloc(sizeof(int)*LEN);

printf("输入查找表中的值:

\n");

scanf("%d",&k);

while(k!

=0)

{

st->elem[i++]=k;

scanf("%d",&k);

}

st->length=i-1;

}

intsequenceSearchST(STst,intk)//静态查找表顺序查找

{

inti;

st.elem[0]=k;

for(i=st.length;st.elem[i]!

=k;i--)

;

returni;

}

voidmain()

{

STst;

intflag,k;

createST(&st);

printf("查找表的长度为:

%d\n",st.length);

printf("输入要查找的值:

");

scanf("%d",&k);

flag=sequenceSearchST(st,k);

if(flag)

printf("查找成功,要查找的值在查找表中

的位置是:

%d\n",flag);

else

printf("查找不成功!

");

}

验证:

#include

intsearchprimary(intx)

{

inti;

for(i=2;i<=x-1;i++)

{

if(x%i==0)break;

}

if(i<=x-1)

return0;

else

return1;

}

 

main()

{

 

inti,j;

for(i=6;i<=20;i=i+2)

{

for(j=3;j

{

i=j+(i-j);

if((searchprimary(j)==1)&&(searchprimary(i-j)==1))

{

printf("%d=%d+%d\n",i,j,i-j);break;

}

}

}

}

指针求最大值

#include

main()

{

inta[10];

int*p_max;

inti;

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

{

scanf("%d",&a[i]);

}

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

{

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

}

p_max=&a[0];

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

{

if(a[0]

{

p_max=&a[i];

}

}

printf("%d\n",*p_max);

}

指针排序从大到小

#include

main()

{

inti,j;

inta[5];

int*p,q;

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

{

scanf("%d",&a[i]);

}

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

{

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

}

p=&a[0];

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

{

for(j=i+1;j<5;j++)

{

if(*(p+i)<*(p+j))

{

q=*(p+i);

*(p+i)=*(p+j);

*(p+j)=q;

}

}

}

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

{

printf("%d\n",*(p+i));

}

}

带函数返回指针求最大值

#include

intmax(int*p,int*q)

{int*p_max;

if(*p<*q)

{

p_max=q;

returnp_max;

}

}

main()

{

inta[10];

int*p_max;

inti;

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

{

scanf("%d",&a[i]);

}

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

{

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

}

p_max=&a[0];

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

{

p_max=max(p_max,&a[i]);

}

printf("max=%d\n",*p_max);

}

求和求平均

#include

voidget(intarry[],intn,int*p,float*q)

{

inti,a;

floatb;

a=0;

b=0;

for(i=0;i

{

a=a+arry[i];

}

b=a/(float)n;

*p=a;

*q=b;

}

voidmain()

{

inta[8]={5,8,9,6,10,3,1};

inti;

intsum;

floatavg;

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

{

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

}

get(a,8,&sum,&avg);

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

printf("theavgis%.2f\n",avg);

}

求最大最小

#include

voidget(intarry[],intn,int*p,int*q)

{

inti;

*p=arry[0];

*q=arry[0];

for(i=1;i

{

if(*p

{

*p=arry[i];

}

if(*q>arry[i])

{

*q=arry[i];

}

}

}

voidmain()

{

inta[8]={5,8,9,6,10,3,1,16};

inti;

intmax;

intmin;

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

{

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

}

get(a,8,&max,&min);

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

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

}

排序

#include

voidgetorder(inta[],intn)

{

inti,j;

for(i=0;i

{

for(j=i+1;j

{

if(a[i]

{

a[i]=a[i]+a[j];

a[j]=a[i]-a[j];

a[i]=a[i]-a[j];

}

}

}

}

main()

{

intarry[8]={3,5,9,1,2,7,6,4};

inti;

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

{

printf("arry[%d]=%d\n",i,arry[i]);

}

getorder(arry,8);

printf("thenewsequenceis:

\n");

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

{

printf("arry[%d]=%d\n",i,arry[i]);

}

}

改进法排序

#include

voidgetorder(inta[],intn)

{

inti,j,k,temp;

for(i=0;i

{

for(j=i+1;j

{

k=i;

if(a[k]

{

k=j;

}

if(i!

=k)

{

temp=a[i];

a[i]=a[j];

a[j]=temp;

}

/*if(a[i]

{

temp=a[i];

a[i]=a[j];

a[j]=temp;

a[i]=a[i]+a[j];

a[j]=a[i]-a[j];

a[i]=a[i]-a[j];

}*/

}

}

}

main()

{

intarry[8]={3,5,9,1,2,7,6,4};

inti;

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

{

printf("arry[%d]=%d\n",i,arry[i]);

}

getorder(arry,8);

printf("thenewsequenceis:

\n");

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

{

printf("arry[%d]=%d\n",i,arry[i]);

}

}

无暇素数

#include

intsearchprimary(intx)

{

inti;

for(i=2;i<=x-1;i++)

{

if(x%i==0)break;

}

if(i<=x-1)

return0;

else

return1;

}

intconserve(intx)

{

inta,b,c;

a=x%10;

b=(x/10)%10;

c=x/100;

x=a*100+b*10+c;

returnx;

}

main()

{

inti,j;

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

{

j=conserve(i);

if(searchprimary(i)==1&&searchprimary(j)==1)

{

printf("%dand%d\n",i,j);

}

}

}

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

当前位置:首页 > 高等教育 > 工学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1