C例子.docx
《C例子.docx》由会员分享,可在线阅读,更多相关《C例子.docx(23页珍藏版)》请在冰点文库上搜索。
![C例子.docx](https://file1.bingdoc.com/fileroot1/2023-6/24/ad0dbb20-6d2c-4194-999b-1dda2025ceb0/ad0dbb20-6d2c-4194-999b-1dda2025ceb01.gif)
C例子
1.将字符串倒置:
abcdef输出结果fedcba代码行数<15
1#include
2intmain(void)
3{
4chara[10]="abcdef",b[10];
5inti;
6for(i=5;i>=0;i--)
7{
8b[5-i]=a[i];
9}
10b[6]='\0';
11printf("%s\n",b);
12return0;
13}
2.写一函数计算1-3+5-7+…-101代码行数<12
1#include
2intmain(void)
3{
4inti,result=0;
5for(i=1;2*i-1<102;i++)
6if(i%2!
=0)
7result=result+(2*i-1);
8else
9result=result-(2*i-1);
10printf("result=%d\n",result);
11return0;
12}
3.将一个整数(024163输入36142
1#include
2intmain(void)
3{
4intn,s;
5printf("Enteryournumber(x>0):
\n");
6scanf("%d",&n);
7
8while(n!
=0)
9{
10s=n%10;
11printf("%d",s);
12n=n/10;
13}
14printf("\n");
15return0;
16}
4.输入两个整数,算出它们的最大公约数和最小公倍数
1#include
2voidgcd(intu,intv)
3{
4inttemp;
5printf("Thegcdof%dand%dis",u,v);
6
7while(v!
=0)
8{
9temp=u%v;
10u=v;
11v=temp;
12}
13printf("%d\n",u);
14}
15
16intlcm(intu,intv)
17{
18printf("Thelcmof%dand%dis",u,v);
19ints,h,temp;
20h=u*v;
21while(v!
=0)
22{
23temp=u%v;
24u=v;
25v=temp;
26}
27
28if(u<0||v<0)
29return0;
30else
31s=h/u;
32printf("%d\n",s);
33}
34
35intmain()
36{
37inta,b;
38printf("Pleaseinputtwonumber:
\n");
39scanf("%d%d",&a,&b);
40gcd(a,b);
41lcm(a,b);
42return0;
43}
5.写一函数算出1~N之间的所有质数
1#include
2intmain()
3{
4intp,d,a;
5_Booli;
6printf("Pleaseinputanumber:
\n");
7scanf("%d",&a);
8
9for(p=2;p<=a;p++)
10{
11i=1;
12for(d=2;d
13if(p%d==0)
14i=0;
15if(i!
=0)
16printf("%d",p);
17}
18printf("\n");
19return0;
20}
6.跑马灯
1#include
2int
3main(intargc,char*argv[])
4{
5char*a;
6a=argv[1];
7inti,n,m,x;//i为数组元素号,n为行数,m为空格
8for(x=0;1<10;x++)
9{
10for(n=1;n<45;n++)//长度75根据命令行的长度修改
11{
12for(m=1;m<45-n;m++)
13{
14printf("");
15}
16printf("%s\n",a);
17for(i=0;i<100000000;i++);
18system("clear");
19}
20}
21return0;
22}
7.单链表
1#include
2#include
3voidadd();
4voiddel();
5structaa
6{
7intscore;
8charname[20];
9structaa*next;
10}*head;
11typedefstructaas_date;
12s_date*q,*p;
13inti,n;
14intmain()
15{
16chardd;
17printf("输入链元素的个数:
\n");
18scanf("%d",&n);
19head=(s_date*)malloc(sizeof(s_date));
20p=head;
21for(i=0;i22{
23q=(s_date*)malloc(sizeof(s_date));
24printf("请输入名字:
\n");
25scanf("%s",p->name);
26printf("请输入成绩:
\n");
27scanf("%d",&p->score);
28p->next=q;
29p=q;
30}
31p=head;
32do
33{
34printf("查看链表-------------------l\n");
35printf("删除链表-------------------d\n");
36printf("增加链表-------------------a\n");
37printf("退出-----------------------q");
38printf("\n");
39dd=getchar();
40scanf("%c",&dd);
41switch(dd)
42{
43case'l':
44p=head;
45printf("名字成绩\n");
46printf("-------------\n");
47while(p->next!
=NULL)
48{
49printf("%s\t%d\n",p->name,p->score);
50p=p->next;
51}
52break;
53case'd':
54del();
55break;
56case'a':
57add();
58break;
59case'q':
60break;
61default:
62printf("你的选择有误:
\n");
63break;
64}
65}
66while(dd!
='q');
67return0;
68}
69
70voiddel()
71{
72printf("请输入要删除的行数:
\n");
73scanf("%d",&n);
74p=head;
75if(n==1)
76head=head->next;
77else
78{
79for(i=1;i80p=p->next;
81p->next=p->next->next;
82}
83p=head;
84}
85
86voidadd()
87{
88q=(s_date*)malloc(sizeof(s_date));
89printf("请输入名字:
\n");
90scanf("%s",q->name);
91printf("请输入成绩:
\n");
92scanf("%d",&q->score);
93p=head;
94q->next=p;
95head=q;
96p=head;
97}
8.杨辉三角
1#include
2intmain(void)
3{
4inta[50][50],kong,hang,i,j;
5printf("请输入三角形行数:
");
6scanf("%d",&hang);
7for(i=0;i8{
9a[i][0]=1;
10a[i][i]=1;
11}
12for(i=2;i13{
14for(j=1;j
15a[i][j]=a[i-1][j-1]+a[i-1][j];
16}
17for(i=0;i18{
19for(kong=i;kong20printf("%-3c",'');
21for(j=0;j<=i;j++)
22printf("%-6d",a[i][j]);
23printf("\n");
24}
25return0;
26}
9.加密
1#include
2intencode(int);/*加密函数*/
3intdecode(int);/*解密函数*/
4
5intmain(void)
6{
7intpwd;
8
9printf("请输入密码:
");
10scanf("%d",&pwd);
11pwd=encode(pwd);
12printf("加密后:
%d\n",pwd);
13pwd=decode(pwd);
14printf("解密后:
%d\n",pwd);
15
16return0;
17}
18
19/*引数:
未加密的密码*/
20/*返回值:
加密后的密码*/
21intencode(intpwd)
22{
23inti;
24union
25{
26intnum;
27charc[sizeof(int)];
28}u1;
29
30u1.num=pwd;
31
32for(i=0;i33{
34u1.c[i]+=32;
35printf("%d\n",u1.num);
36printf("%d\n",u1.c[i]);
37}
38
39returnu1.num;
40}
41
42/*引数:
加密过的密码*/
43/*返回值:
还原后的密码*/
44intdecode(intpwd)
45{
46inti;
47union
48{
49intnum;
50charc[sizeof(int)];
51}u1;
52
53u1.num=pwd;
54
55for(i=0;i56u1.c[i]-=32;
57
58returnu1.num;
59}
10./*输出如下:
1
12
123*/
1#include
2
3intmain()
4{
5inti,j;
6for(i=1;i<10;i++)
7{
8for(j=1;j<=i;j++)
9printf("%d",j);
10
11printf("\n");
12}
13}
11.菱形
1#include
2
3intmain(void)
4{
5intkong,xing,hang,i;
6printf("Pleasetypeanumber:
\n");
7scanf("%d",&hang);
8
9for(i=1;i<=hang;i++)
10{
11for(kong=0;kong12printf("");
13
14for(xing=0;xing<2*i-1;xing++)
15printf("*");
16
17printf("\n");
18}
19
20for(i=1;i<=hang;i++)
21{
22for(kong=0;kong
23printf("");
24
25for(xing=0;xing<2*(hang-i)-1;xing++)
26printf("*");
27
28printf("\n");
29}
30}
12.九九乘法表
1#include
2int
3main()
4{
5inti,j;
6for(i=1;i<10;i++)
7{
8for(j=1;j<=i;j++)
9printf("%dx%d=%d",i,j,i*j);
10
11printf("\n");
12}
13}
13//示例:
malloc()与free()//动态分配内存地址
1#include
2#include
3
4intmain(void)
5{
6structstudent
7{
8charname[20];
9intscore;
10structstudent*next;
11};
12typedefstructstudents_data;
13s_data*new_student;
14
15new_student=(s_data*)malloc(sizeof(s_data));
16
17if(new_student==NULL)
18puts("内存分配失败!
");
19else
20{
21printf("姓名:
");
22scanf("%s",new_student->name);
23printf("成绩:
");
24scanf("%d",&new_student->score);
25new_student->next=NULL;
26}
27
28printf("姓名:
%s\t成绩:
%d\n",new_student->name,
29new_student->score);
30free(new_student);
31
32return0;
33}
14.冒泡排序
1#include
2voidswap(int*i,int*j)
3{
4inttemp;
5temp=*i;
6*i=*j;
7*j=temp;
8}
9
10voidPaixu(int*arr,intlength)
11{
12inti,j;
13for(i=0;i14{
15for(j=0;j16{
17if(arr[j]>arr[j+1])
18swap(&arr[j],&arr[j+1]);
19}
20}
21}
22
23intmain(void)
24{
25intnum[]={23,24,56,16,4,12,46,5,45,51};
26inti;
27
28puts("排序�:
");
29for(i=0;i<10;i++)
30printf("%d",num[i]);
31
32Paixu(num,10);
33
34puts("\n排序后:
");
35for(i=0;i<10;i++)
36printf("%d",num[i]);
37printf("\n");
38
39return0;
40}
15.判断是否为润年
1#include
2
3intmain()
4{
5intyear,rem4,rem100,rem400;
6printf("请输入一个年份如2004:
\n");
7scanf("%d",&year);
8
9rem4=year%4;
10rem100=year%100;
11rem400=year%400;
12
13if((rem4==0&&rem100!
=0)||rem400==0)
14printf("这是一个润年。
\n");
15else
16printf("这不是润年\n");
17return0;
18}
16.示例:
枚举类型
1#include
2
3intmain(void)
4{
5enumcolors
6{RED=1,ORANGE,YELLOW,GREEN,BLUE,INDIGO,PURPLE};
7
8char*color_name[]=
9{"未定义!
","红","橙","黄","绿","蓝","靛","紫"};
10inti;
11
12for(i=0;i<=PURPLE;i++)
13printf("%d\t%s\n",i,color_name[i]);
14
15return0;
16}
17.递归求阶乘
1#include
2
3intjiecheng(intn)
4{
5if(n>1)
6returnn*jiecheng(n-1);
7else
8return1;
9}
10
11intmain()
12{
13intn,s;
14printf("请输入数值求阶乘:
\n");
15scanf("%d",&n);
16s=jiecheng(n);
17printf("%d!
=%d\n",n,s);
18return0;
19}
18.简单的makefile
1out:
main.ootherobj.o
2gcc-ooutmain.ootherobj.o
3mani.o:
main.cmain.h
4gcc-omain.o-cmain.c
5otherobj.o:
otherobj.cotherobj.h
6gcc-ootherobj.o-cotherobj.c
7clean:
8rm*.oout
19.单链表的建立与查询
1#include
2#include
3main()
4{
5inti,m;
6structstudent
7{
8charname[20];
9intscore;
10structstudent*next;
11}*head,*p,*q;
12head=(structstudent*)malloc(sizeof(structstudent));
13p=head;
14printf("inputhangshu:
");
15scanf("%d",&m);
16for(i=0;i17{
18q=(structstudent*)malloc(sizeof(structstudent));
19printf("name:
");
20scanf("%s",p->name);
21printf("score:
");
22scanf("%d",&p->score);