大家好,今天小编来为大家解答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();
}
好了,文章到此结束,希望可以帮助到大家。