搜档网
当前位置:搜档网 › C语言源代码(精心整理)

C语言源代码(精心整理)

C语言源代码(精心整理)
C语言源代码(精心整理)

剪刀石头布源代码

#include

#include

main()

{

int d,x;

{

printf("请输入:1是剪刀,2是石头,3是布");

scanf("%d",&d);

x=rand()%3;

if(d==x)

printf("双方平局");

else if((d==1&&x==2)||(d==2&&x==3)||(d==3&&x==1)) printf("你赢了");

else

printf("电脑赢了");

}

}

简单计算器

#include

main()

{

int a,b,d=0;

char c;

while(d==0)

{

printf("请开始计算,请输入需要运算的数字和运算法则,数字符号数字:"); scanf("%d%c%d",&a,&c,&b);

switch(c)

{

case'+':

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

break;

case'-':

printf("%d-%d=%d\n",a,b,a-b);

break;

case'*':

printf("%d*%d=%d\n",a,b,a*b);

break;

case'/':

if(0==b)

printf("除法被除数不能为零!\n") ;

else

printf("%d/%d=%d\n",a,b,a/b);

break;

}

}

}

加油站加油问题

#include

int main()

{

double a = 3.25, b = 3.00, c= 2.75;

double d = 0.05, e = 0.10, m;

int x,y,z;

printf("请输入您要的加油量:");

scanf("%d",&x);

printf("请输入您要的汽油种类,1-a型汽油售价3.25元/千克, 2-b型汽油售价3.00元/千克, 3-c型汽油售价2.75元/千克:");

scanf("%d",&y);

printf("请输入您要的服务类型,1-自己加服务优惠0.05,2-协助加服务优惠0.10:"); scanf("%d",&z);

switch(y)

{

case 1:

y = a;break;

case 2:

y = b;break;

case 3:

y = c;break;

}

if(z == 1)

m = (1 - d) * y * x;

else if(z == 2)

m = (1 - e) * y * x;

printf("您需要支付:%f 元,谢谢惠顾,欢迎下次再来",m);

return 0;

}

猜数字游戏

#include

#include

int main()

{

int d=1,e=0;

int a,b,t;

printf ("请输入1-10以内的整数,\n ");

while(d==1)

{

printf("玩家的选择: ");

scanf("%d",&a);

do

{

if((a>=0)&&(a<11))break;

else

{printf("错误");

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

}

while(e==0);

b=rand()%10+1;

printf("npc:%d",b);

t=a-b;

if(t==0)

printf("\nRight!\n");

else if(t<0)

printf("\n Wrong !太小了\ n");

else if(t>0)

printf("\n Wrong !太大了\ n");

}

return 0;

}

万年历

#include

#include

void setmonth(int r);

void main(void)

{

int year,month,day,a,b,i,j,d,x,mon,k;

do

{

printf("----------------------------------------------------\n");

printf(" 查全年,输入 1!\n");

printf(" 查月份,输入 2!\n");

printf(" 查日期,输入 3!\n");

printf(" 继续?输入 4!\n");

printf(" 退出,输入 5!\n");

printf("-----------------------------------------------------\n");

printf("请输入:");

scanf("%d",&x);

if(x==1)

{

month=12;

printf("输入年份:");

scanf("%d",&year);

if(x==2)

{

printf("输入年份:");

scanf("%d",&year);

printf("输入月份:");

scanf("%d",&month);

}

if(x==3)

{

printf("输入年份:");

scanf("%d",&year);

printf("输入月份:");

scanf("%d",&mon);

printf("输入日期:");

scanf("%d",&day);

month=mon-1;

}

if(x==5)

exit(100);

a=((year-1)*365+(year-1)/4-(year-1)/100+(year-1)/400)%7;

for(i=1,d=0;i<=month;i++)

{

switch(i)

{

case 1:

case 3:

case 5:

case 7:

case 8:

case 10:

case 12:d=31;break;

case 2:if(!(year%4)&&(year%100)||!(year%400))

d=29;

else

d=28;

break;

case 4:

case 6:

case 9:

case 11:d=30;

}

b=a%7;

a+=d;

if(x==1)

{

printf("========================================================\n");

setmonth(i);

printf("************************************************\n");

printf("========================================================\n");

printf(" 星期一星期二星期三星期四星期五星期六星期天\n");

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

printf("%8c",' ');

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

{

printf("%8d",j);

if((j+b)%7==0)

printf("\n");

}

}

if(x==1)

printf("\n");

}

if(x==2)

{

printf("========================================================\n");

setmonth(i-1);

printf("************************************************\n");

printf("========================================================\n");

printf(" 星期一星期二星期三星期四星期五星期六星期天\n");

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

printf("%8c",' ');

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

{

printf("%8d",j);

if((j+b)%7==0)

printf("\n");

}

printf("\n");

}

if(x==3)

{

a+=day;

a%=7;

switch(a)

{

case 0:printf("%d.%d.%d 星期一!",year,mon,day);break;

case 1:printf("%d.%d.%d 星期二!",year,mon,day);break;

case 2:printf("%d.%d.%d 星期三!",year,mon,day);break;

case 3:printf("%d.%d.%d 星期四!",year,mon,day);break;

case 4:printf("%d.%d.%d 星期五!",year,mon,day);break;

case 5:printf("%d.%d.%d 星期六!",year,mon,day);break;

default:printf("%d.%d.%d 星期天!",year,mon,day);

}

printf("\n");

}

printf("是否继续?输入4继续,输入5退出:");

scanf("%d",&k);

} while(k==4);

if(k==5)

exit(100);

}

void setmonth(int r)

{

switch(r)

{

case 1:printf("%4c 一月份",' ');break;

case 2:printf("%4c 二月份",' ');break;

case 3:printf("%4c 三月份",' ');break;

case 4:printf("%4c 四月份",' ');break;

case 5:printf("%4c 五月份",' ');break;

case 6:printf("%4c 六月份",' ');break;

case 7:printf("%4c 七月份",' ');break;

case 8:printf("%4c 八月份",' ');break;

case 9:printf("%4c 九月份",' ');break;

case 10:printf("%4c 十月份",' ');break;

case 11:printf("%2c 十一月份",' ');break;

default:printf("%2c 十二月份",' ');

}

}

ATM机

# include

# include

# define Password 123456

main ()

{

int a,i,b,q,c;

float m;

m=3000.00;

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

{printf("请输入密码\n");

scanf("%d",&a);

if(a==Password)

{printf("密码正确,欢迎使用\n");

break;}

else

printf("密码错误,请重新输入\n");}

{if (a!=Password)

printf("您的操作错误超过3次,请取回卡\n");

else

{system("cls");

printf("1.取款\n2.存款\n3.查询余额\n4.退出\n");

}}

while(b!=4)

{

scanf("%d",&b);

switch(b)

{

case 1: system("cls");printf("请输入你要取款的金额\n");

scanf(" %d",&q); printf("取款成功,请选择你要进行的操作\n");m=m-q;break;

case 2: system("cls");printf("请输入你要存入的金额\n");scanf(" %d",&c);m=m+c;

;printf("存款成功,请选择你要进行的操作\n");break;

case 3: system("cls");printf("您的余额为%.2f\n",m);break;

case 4: system("cls");printf("谢谢使用");break;

}

}

return 0;}

学生成绩

#include

#include

float s[3][4];

int r=0,c=0;

void pjf(void)

{

int i,j,cour = 0;

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

{

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

cour+=s[i][j];

printf("第%d课的平均分是%d\n",(j+1),cour/3);

cour = 0;

}

}

void dkzg(void)

{

int i,j,high=0;

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

{

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

{

if(s[i][j]>high)

{

high=s[i][j];

r=i+1;

c=j+1;

}

}

printf("最高分是%d,学生是%d,课程是%d\n",high,r,c);

r=0;

c = 0;

high = 0;

}

}

int main()

{

int i,j;

float score=0;

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

{

printf("enter NO.%d score\n",i+1);

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

{

scanf("%f",&s[i][j]);

score += s[i][j];

}

printf("第%d个学生的平均分是%f\n",(i+1),score/4);

score = 0;

}

pjf();

dkzg();

return 0;

}

选票问题

#include

void main()

{

int i=1;

char j;

int num[4]={0,0,0,0};

printf("3位候选人,分别为A,B,C D为无效票,开始投票\n"); while(i<=10)

{

printf("请输入第%d个的选票",i);

scanf("%c",&j);

switch(j)

{

case 'A':num[0]++;i++;break;

case 'B':num[1]++;i++;break;

case 'C':num[2]++;i++;break;

case 'D':num[3]++;i++;break;

}

getchar();

}

printf("A获得%d张选票\n",num[0]);

printf("B获得%d张选票\n",num[1]);

printf("C获得%d张选票\n",num[2]);

printf("无效票为%d张 \n",num[3]);

}

打字母游戏

#include

#include

#include

#include

#include

#include

// 欢迎界面

void welcome()

{

// 输出屏幕提示

cleardevice(); //清除屏幕内容,用当前背景色清空屏幕,并将当前点移至 (0, 0)。

setcolor(RED); //设置当前绘图前景色为红色,字体颜色为红色

setfont(64, 0, "黑体");//设置当前字体样式为黑体,大小为64

outtextxy(160, 50, "打字母游戏");//在指定位置输出字符串。

setcolor(GREEN);//设置当前绘图前景色为绿色,即文字颜色为绿色

setfont(16, 0, "宋体");//设置当前字体样式为宋体

outtextxy(200, 200, "本游戏是一个简单传统的游戏");//在指定位置输出字符串。

outtextxy(200, 240, "就是随机出现些字母然后游戏");//在指定位置输出字符串。

outtextxy(200, 280, "者敲键盘把它消除用以锻炼游");//在指定位置输出字符串。

outtextxy(200, 320, "者的反应能力,来试试吧");//在指定位置输出字符串。

// 实现闪烁的"按任意键继续"

int c=255;

while(!kbhit()) //没有按键时循环继续

{

setcolor(RGB(c, 0, 0));//设置当前绘图前景色为红色色

outtextxy(280, 400, "按任意键继续");//在指定位置输出字符串

c -= 8; //变量c的值自减去8

if (c < 0) c = 255;

Sleep(20);//调用Sleep()函数延时20毫秒

}

getch();//等待用户从键盘按任意一个键,退出循环

cleardevice();//用当前背景色清空屏幕,并将当前点移至 (0, 0)。

}

// 难度界面

int welcome2()

{

int i;// 输出屏幕提示

cleardevice(); //清除屏幕内容,用当前背景色清空屏幕,并将当前点移至 (0, 0)。

setcolor(YELLOW); //设置当前绘图前景色为黄色,字体颜色为黄色

setfont(64, 0, "黑体");//设置当前字体样式为黑体,大小为64

outtextxy(160, 50, "难度选择");//在指定位置输出字符串。

setcolor(GREEN);//设置当前绘图前景色为绿色,即文字颜色为绿色

setfont(16, 0, "宋体");//设置当前字体样式为宋体

outtextxy(100, 160, "初级");//在指定位置输出字符串。

outtextxy(100, 200, "中级");//在指定位置输出字符串。

outtextxy(100, 240, "高级");//在指定位置输出字符串。

outtextxy(100, 280, "终极");//在指定位置输出字符串。

outtextxy(100, 380, "初级选择1,中级选择2,高级选择3,终极4,退出5");

scanf("%d",&i);

return i;

}

//过关界面

void ok()

{

cleardevice();

setcolor(YELLOW);

setfont(48, 0, "黑体");

outtextxy(104, 180, "恭喜过关,再接再厉");

getch();

}

//未过界面

void gameover()

{

cleardevice();

setcolor(YELLOW);

setfont(48, 0, "黑体");

outtextxy(104, 180, " GAME OVER");

getch();

}

// 退出界面

void goodbye()

{

cleardevice();//用当前背景色清空屏幕,并将当前点移至 (0, 0)。

setcolor(BLUE);//设置当前绘图前景色为蓝色

setfont(48, 0, "黑体");//设置输出字符串的字体为黑体,大小为48

outtextxy(40, 180, "其实游戏可以适当玩玩的!");

getch();//等待用户从键盘按任意一个键

}

// 主函数

void main()

{

int a;

initgraph(640, 480); // 初始化屏幕为 640x480

welcome(); // 显示欢迎界面

bb:a=welcome2();

cleardevice(); //清除屏幕内容,用当前背景色清空屏幕,并将当前点移至 (0, 0)。

srand(time(NULL)); // 设置随机种子

setfont(20, 0, "黑体"); // 设置字母的字体和大小

setfillstyle(BLACK); // 设置清除字母的填充区域颜色

char target,target1; // 目标字母

char key; // 用户的按键

int x, y,b=51,c=48; // 字母的位置

switch(a)

{

case 1:

{

while(true)

{

target = 65 + rand() % 26; // 产生任意大写字母

x = rand() % 550; // 产生任意下落位置

for (y=0; y<460; y++)

{

setcolor(GREEN); // 设置字母的颜色

outtextxy(x, y, target);

setcolor(RED);

outtextxy(550, 80, "生\t命\t值");

outtextxy(600, 120, b);

setcolor(GREEN);

outtextxy(560, 450, "分值");

outtextxy(600, 450, c);

if(kbhit())

{

key = getch(); // 获取用户按键

if((key != target) && (key != target + 32))

b=b-1;

if((key == target) || (key == target + 32))

{

// 按键正确,"击落"字母(画黑色方块擦除)

bar(x, y, x + 20, y + 20);

c=c+1;

break; // 跳出循环,进行下一个字母

}

else if (key == 27)

{

goto EXIT; // 如果按 ESC,退出游戏主循环

}

}

if(y==459) b=b-1;

if(b==48) goto over;

if(c==57) goto win;

Sleep(10);

bar(x, y, x + 20, y + 20);

}

}

}break;

case 2:

{

while(true)

{

target = 65 + rand() % 26; // 产生任意大写字母

x = rand() % 550; // 产生任意下落位置

for (y=0; y<460; y=y+2)

{

setcolor(GREEN); // 设置字母的颜色

outtextxy(x, y, target);

outtextxy(x+160,y,target1);// 显示字母

setcolor(RED); // 显示字母

outtextxy(550, 80, "生命值");

outtextxy(600, 120, b);

setcolor(GREEN);

outtextxy(560, 450, "分值");

outtextxy(600, 450, c);

if(kbhit())

{

key = getch(); // 获取用户按键

if((key != target) && (key != target + 32))

b=b-1;

if((key == target) || (key == target + 32))

{

bar(x, y, x + 20, y + 20);

c=c+1;

break;

}

else if (key == 27) goto EXIT; // 如果按 ESC,退出游戏主循环

}

if(y==459) b=b-1;

if(b==48) goto over;

if(c==57) goto win;

Sleep(1);

bar(x, y, x + 20, y + 20);

}

}

}break;

case 3:

{

while(true)

{

target = 65 + rand() % 26; // 产生任意大写字母

x = rand() % 550; // 产生任意下落位置

for (y=0; y<460; y=y+1)

{

setcolor(GREEN); // 设置字母的颜色

outtextxy(x, y, target);

setcolor(RED); // 显示字母

outtextxy(550, 80, "生\t命\t值");

outtextxy(600, 120, b);

setcolor(GREEN);

outtextxy(560, 450, "分值");

outtextxy(600, 450, c);

if(kbhit())

{

key = getch(); // 获取用户按键

if((key != target) && (key != target + 32))

b=b-1;

if((key == target) || (key == target + 32))

{

// 按键正确,"击落"字母(画黑色方块擦除)

bar(x, y, x + 20, y + 20);

c=c+1;

break; // 跳出循环,进行下一个字母

}

else if (key == 27) goto EXIT; // 如果按 ESC,退出

}

if(y==459) b=b-1;

if(b==48) goto over;

if(c==57) goto win;

int i;

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

bar(x, y, x + 20, y + 20);

}

}

}break;

case 4:

{

while(true)

{

target = 65 + rand() % 26; // 产生任意大写字母

x = rand() % 550; // 产生任意下落位置

for (y=0; y<460; y++)

{

setcolor(GREEN); // 设置字母的颜色

outtextxy(x, y, target);

outtextxy(x+160,y,target1);// 显示字母

setcolor(RED); // 显示字母

outtextxy(550, 80, "生命值");

outtextxy(600, 120, b);

setcolor(GREEN);

outtextxy(560, 450, "分值");

outtextxy(600, 450, c);

if(kbhit())

{

key = getch(); // 获取用户按键

if((key != target) && (key != target + 32))

b=b-1;

if((key == target) || (key == target + 32))

{

bar(x, y, x + 20, y + 20);

c=c+1;

break;

}

else if (key == 27) goto EXIT; // 如果按 ESC,退出游戏主循环

}

if(y==459) b=b-1;

if(b==48) goto over;

if(c==57) goto win;

int i;

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

bar(x, y, x + 16, y + 16);

}

}break;

case 5:

goto EXIT;break;

}

over: gameover(); goto bb;

win: ok(); goto bb;

EXIT: goodbye(); closegraph(); // 关闭图形界面}

相关主题