c语言小程序(C语言小程序)

中国机械与配件网3800

大家好,今天小编来为大家解答c语言小程序这个问题,C语言小程序很多人还不知道,现在让我们一起来看看吧!

用C语言写一个小程序,麻烦大家了

c语言小程序(C语言小程序)

//记得多给点分哦,很难写的。

//C

#include<stdio.h>

intstrnmerge(char*str,intn,charconst*s1,charconst*s2){

while(n>0){

if(!(*s1)&&!(*s2))break;

if(*s1&&n>0){

*str++=*s1++;

--n;

}

if(*s2&&n>0){

*str++=*s2++;

--n;

}

}

*str='\0';

}

intmain(){

chars1[]="aaaa";

chars2[]="bbbbbbbbb";

charstr[100];

strnmerge(str,10,s1,s2);

printf("s1=%s\n",s1);

printf("s2=%s\n",s2);

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

return0;

}

//C++

#include<iostream>

usingnamespacestd;

intstrnmerge(char*str,intn,charconst*s1,charconst*s2){

while(n>0){

if(!(*s1)&&!(*s2))break;

if(*s1&&n>0){

*str++=*s1++;

--n;

}

if(*s2&&n>0){

*str++=*s2++;

--n;

}

}

*str='\0';

}

intmain(){

chars1[]="aaaa";

chars2[]="bbbbbbbbb";

charstr[100];

strnmerge(str,10,s1,s2);

cout<<"s1="<<s1<<endl;

cout<<"s2="<<s2<<endl;

cout<<"str="<<str<<endl;

return0;

}

有什么好玩的C语言小程序

一个“歼灭敌机”的小游戏,DEVc++编译通过:

#include<stdio.h>

#include<conio.h>

#include<stdlib.h>

#include<windows.h>

#include<time.h>

#definezlx10//增量坐标(x)让游戏框不靠边

#definezly3//增量坐标(y)让游戏框不靠边

#defineW26//游戏框的宽度

#defineH24//游戏框的高度

intjiem[22][22]={0},wj=10;//界面数组,我机位置(初值为10)

intspeed=4,density=30,score=0,death=0;//敌机速度,敌机密度,玩家成绩,死亡次数

intm=0,n=0;//m,n是控制敌机的变量

voidgtxy(intx,inty)//控制光标位置的函数

{COORDpos;

pos.X=x;pos.Y=y;

SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),pos);

}

voidColor(inta)//设定颜色的函数(a应为1-15)

{SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),a);}

voidyinc(intx=1,inty=0)//隐藏光标的函数

{CONSOLE_CURSOR_INFOgb={x,y};//y设为0即隐藏

SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE),&gb);

}

voidcsh()//初始化函数

{inti;

Color(7);

gtxy(zlx,zly);printf("╔");gtxy(zlx+W-2,zly);printf("╗");//左上角和右上角的框角

gtxy(zlx,zly+H-1);printf("╚");gtxy(zlx+W-2,zly+H-1);printf("╝");//下边两框角

for(i=2;i<W-2;i+=2){gtxy(zlx+i,zly);printf("═");}//打印上横框

for(i=2;i<W-2;i+=2){gtxy(zlx+i,zly+H-1);printf("═");}//打印下横框

for(i=1;i<H-1;i++){gtxy(zlx,zly+i);printf("║");}//打印左竖框

for(i=1;i<H-1;i++){gtxy(zlx+W-2,zly+i);printf("║");}//打印右竖框

Color(14);gtxy(19,2);printf("歼灭敌机");Color(10);

gtxy(37,5);printf("设置:Esc");

gtxy(37,7);printf("发射:↑");

gtxy(37,9);printf("控制:←→");

gtxy(37,11);printf("得分:%d",score);

gtxy(37,13);printf("死亡:%d",death);

yinc(1,0);

}

voidqcjm()//清除界面函数

{inti,j;

for(i=0;i<H-2;i++)

for(j=0;j<W-4;j++){gtxy(zlx+2+j,zly+1+i);printf("");}

}

voidfeiji()//飞机移动函数

{inti,j;

for(i=21;i>=0;i--)//从底行往上是为了避免敌机直接冲出数组

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

{if(i==21&&jiem[i][j]==3)jiem[i][j]=0;//底行赋值0以免越界

if(jiem[i][j]==3)jiem[i][j]=0,jiem[i+1][j]=3;

}

if(jiem[20][wj]==3&&jiem[21][wj]==1)death++;

}

voidzidan()//子弹移动函数

{inti,j;

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

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

{if(i==0&&jiem[i][j]==2)jiem[i][j]=0;

if(jiem[i][j]==2){if(jiem[i-1][j]==3)score+=100,printf("\7");

jiem[i][j]=0,jiem[i-1][j]=2;}

}

}

voidprint()//输出界面函数

{inti,j;

qcjm();

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

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

{gtxy(12+j,4+i);

if(jiem[i][j]==3){Color(13);printf("□");}

if(jiem[i][j]==2){Color(10);printf(".");}

if(jiem[i][j]==1){Color(10);printf("■");}

}

gtxy(37,11);Color(10);printf("得分:%d",score);

gtxy(37,13);printf("死亡:%d",death);

}

voidsetting()//游戏设置函数

{qcjm();

gtxy(12,4);printf("选择敌机速度:");

gtxy(12,5);printf("1.快2.中3.慢>>");

switch(getche())

{case'1':speed=2;break;

case'2':speed=4;break;

case'3':speed=5;break;

default:gtxy(12,6);printf("错误!默认值");

}

gtxy(12,7);printf("选择敌机密度:");

gtxy(12,8);printf("1.大2.中3.小>>");

switch(getche())

{case'1':density=20;break;

case'2':density=30;break;

case'3':density=40;break;

default:gtxy(12,9);printf("错误!默认值");

}

for(inti=0;i<22;i++)

for(intj=0;j<22;j++)jiem[i][j]=0;

jiem[21][wj=10]=1;jiem[0][5]=3;

gtxy(12,10);printf("按任意键保存...");

getch();

qcjm();

}

voidrun()//游戏运行函数

{jiem[21][wj]=1;//值为1代表我机(2则为子弹)

jiem[0][5]=3;//值为3代表敌机

SetConsoleTitle("歼灭敌机");//设置窗口标题

while(1)

{if(kbhit())//如有键按下,控制我机左右移动、发射或进行设定

{intkey;

if((key=getch())==224)key=getch();

switch(key)

{case75:if(wj>0)jiem[21][wj]=0,jiem[21][--wj]=1;break;

case77:if(wj<20)jiem[21][wj]=0,jiem[21][++wj]=1;break;

case72:jiem[20][wj]=2;break;

case27:setting();

}

}

if(++n%density==0)//控制产生敌机的速度

{n=0;srand((unsigned)time(NULL));

jiem[0][rand()%20+1]=3;

}

if(++m%speed==0){feiji();m=0;}//控制敌机移动速度(相对子弹而言)

zidan();

print();

Sleep(120);//延时120毫秒

}

}

intmain()

{csh();

run();

return0;

}

新手要方便写代码,可以收藏下面几个自编函数:

SetConsoleTitle("俄罗斯方块");//设置窗口左上角标题栏处出现"俄罗斯方块"5个字

srand((unsigned)time(NULL));//初始化随机数发生器

n=rand()%20;//产生随机数0-19中的一个.如rand()%5就产生0-4中的一个数

SetConsoleTitle()函数在<windows.h>里,srand()函数与rand()函数要配合用,

就是同时要用,在<stdlib.h>里。如果rand()%10+1就产生1-10之中的一个数。

Sleep(300);//延时300毫秒(就是程序暂停300毫秒后继续运行)

system("cls");//清屏(把窗口里的内容全部清除,光标定于(0,0)位置处)

这两个函数都在<windows.h>里。开头4个自编函数编写如下:

voidgtxy(intx,inty)//控制光标位置的函数

{COORDpos;

pos.X=x;

pos.Y=y;

SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),pos);

}

voidColor(inta)//设定颜色的函数

{SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),a);}

voidyinc(intx,inty)//隐藏光标的函数

{CONSOLE_CURSOR_INFOgb={x,y};//gb代表光标

SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE),&gb);

}

voidkou(intw,inth)//设置窗口大小的函数

{HANDLEhl=GetStdHandle(STD_OUTPUT_HANDLE);

COORDsize={w,h};

SetConsoleScreenBufferSize(hl,size);

SMALL_RECTrc={0,0,w,h};

SetConsoleWindowInfo(hl,1,&rc);

}

最后这个函数,参数w是宽h是高。里边5行中第一行定义了句柄型变量hl,并给它赋值。

第二行定义了坐标型结构体变量size,它的取值决定了缓冲区的大小。第三行就是使用

size的值设置好缓冲区大小。第四行定义了变量rc,它的值决定当前窗口显示的位置与

大小(不得超过缓冲区的大小)。前两个0,0是从缓冲区左上角0列0行位置处开始,后两

个参数可以小于w和h.比如rc={0,0,w-10,h-5};最后一行使用rc的值设置好窗口,中间

那个参数要为"1"或写“true”才有效。

编写几个C语言小程序。。

/*输入两个整数a和b,求平均值ave。并输出平均值。*/

#include

/*

此头函数请不要删除

*/

main()

{

float

a,b,ave;

printf("请输入整数a和b以逗号隔开:\n");

scanf("%f,%f",&a,&b);

ave=(a+b)/2;

printf("整数a和b的平均值是ave=%6.2f",ave);

getch();

}

/*

输入圆柱底面的半径radius和圆柱的高height,求圆柱的表面积area和体积volumn,

要求输出结果保留两位小数、*/

main()

{

float

radius,height,area,volumn;

printf("请输入圆柱底面的半径radius:\n");

scanf("%f",&radius);

printf("请输入圆柱的高height:\n");

scanf("%f",&height);

area=3.14*(radius*radius)+2*3.14*radius;

volumn=3.14*(radius*radius)*height;

printf("圆柱的表面积area=%8.2f

\n体积volumn=%8.2f",area,volumn);

getch();

}

/*

设银行定期存款的年利率rate为3.82%,并已知存款期为n年,存款本金为capital元,

试编程计算n年后的本利之和deposit.要求rate,n

,capital均从键盘输入,输出信息要完整清晰。。

*/

main()

{

float

rate,n,capital,deposit,i;

printf("请输入年利率rate:");

scanf("%f",&rate);

printf("请输入存款本金capital:");

scanf("%f",&capital);

printf("请输入存期年n:");

scanf("%f",&n);

deposit=capital;

i=n;

while(i!=0)

{

deposit=(1+0.0382)*deposit;

i=i-1;

}

printf("%1f年后的本利之和为:%9.2f",n,deposit);

getch();

}

好了,文章到此结束,希望可以帮助到大家。