求助啊,谁有有趣的c语言小程序,并且要有源代码!!

供稿:hz-xin.com     日期:2025-01-12
求C语言大佬编一个小程序,急!感激不尽!是一个有趣的文件搜索引擎

搜索引擎分类部分提到过全文搜索引擎从网站提取信息建立网页数据库的概念。搜索引擎的自动信息搜集功能分两种。一种是定期搜索,即每隔一段时间(比如Google一般是28天),搜索引擎主动派出“蜘蛛”程序,对一定IP地址范围内的互联网网站进行检索,一旦发现新的网站,它会自动提取网站的信息和网址加入自己的数据库。另一种是提交网站搜索,即网站拥有者主动向搜索引擎提交网址,它在一定时间内(2天到数月不等)定向向你的网站派出“蜘蛛”程序,扫描你的网站并将有关信息存入数据库,以备用户查询。随着搜索引擎索引规则发生很大变化,主动提交网址并不保证你的网站能进入搜索引擎数据库,最好的办法是多获得一些外部链接,让搜索引擎有更多机会找到你并自动将你的网站收录。
蜘蛛搜索引擎
当用户以关键词查找信息时,搜索引擎会在数据库中进行搜寻,如果找到与用户要求内容相符的网站,便采用特殊的算法——通常根据网页中关键词的匹配程度、出现的位置、频次、链接质量——计算出各网页的相关度及排名等级,然后根据关联度高低,按顺序将这些网页链接返回给用户。这种引擎的特点是搜全率比较高。

单独学c很枯燥的,会把你的兴趣搞没的,建议你搞一门脚本语言,以及win的API,学会调用API

学习“推箱子”C语言编码:

#include <stdio.h>

#include <conio.h>

#include<stdlib.h>

#include<windows.h>

int m =0;  //m代表第几关

struct maps{short a[9][11]; };

struct maps map[5]={ 0,0,0,0,0,0,0,0,0,0,0,  //共5关,每关9行

                  0,1,1,1,1,1,1,1,0,0,0,

                  0,1,0,0,0,0,0,1,1,1,0,

                  1,1,4,1,1,1,0,0,0,1,0,  //0空地,1墙

                  1,5,0,0,4,0,0,4,0,1,0,  //4是箱子,5是人

                  1,0,3,3,1,0,4,0,1,1,0,  //3是目的地

                  1,1,3,3,1,0,0,0,1,0,0,  //7是箱子在目的地(4+3)

                  0,1,1,1,1,1,1,1,1,0,0,  //8是人在目的地(5+3)

                  0,0,0,0,0,0,0,0,0,0,0,

                  0,0,0,0,0,0,0,0,0,0,0,

                  0,0,1,1,1,1,0,0,0,0,0,

                  0,0,1,5,0,1,1,1,0,0,0,

                  0,0,1,0,4,0,0,1,0,0,0,

                  0,1,1,1,0,1,0,1,1,0,0,

                  0,1,3,1,0,1,0,0,1,0,0,

                  0,1,3,4,0,0,1,0,1,0,0,

                  0,1,3,0,0,0,4,0,1,0,0,

                  0,1,1,1,1,1,1,1,1,0,0,

                  0,0,0,0,0,0,0,0,0,0,0,

                  0,0,0,1,1,1,1,1,1,1,0,

                  0,0,1,1,0,0,1,0,5,1,0,

                  0,0,1,0,0,0,1,0,0,1,0,

                  0,0,1,4,0,4,0,4,0,1,0,

                  0,0,1,0,4,1,1,0,0,1,0,

                  1,1,1,0,4,0,1,0,1,1,0,

                  1,3,3,3,3,3,0,0,1,0,0,

                  1,1,1,1,1,1,1,1,1,0,0,

                  0,1,1,1,1,1,1,1,1,1,0,

                  0,1,0,0,1,1,0,0,0,1,0,

                  0,1,0,0,0,4,0,0,0,1,0,

                  0,1,4,0,1,1,1,0,4,1,0,

                  0,1,0,1,3,3,3,1,0,1,0,

                  1,1,0,1,3,3,3,1,0,1,1,

                  1,0,4,0,0,4,0,0,4,0,1,

                  1,0,0,0,0,0,1,0,5,0,1,

                  1,1,1,1,1,1,1,1,1,1,1,

                  0,0,0,0,0,0,0,0,0,0,0,

                  0,0,0,1,1,1,1,1,1,0,0,

                  0,1,1,1,0,0,0,0,1,0,0,

                  1,1,3,0,4,1,1,0,1,1,0,

                  1,3,3,4,0,4,0,0,5,1,0,

                  1,3,3,0,4,0,4,0,1,1,0,

                  1,1,1,1,1,1,0,0,1,0,0,

                  0,0,0,0,0,1,1,1,1,0,0,

                  0,0,0,0,0,0,0,0,0,0,0 };

void DrMap( )  //绘制地图

{ CONSOLE_CURSOR_INFO cursor_info={1,0};   //隐藏光标的设置

 SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE),&cursor_info);

 printf("

\b推箱子");

 printf("
");

for (int i = 0; i < 9; i++)

    {for (int j = 0; j < 11; j++)

       {switch (map[m].a[i][j])

          {case 0:  printf("  "); break;

           case 1:  printf("■"); break;

           case 3:  printf("◎");break;

           case 4:  printf("□"); break;

           case 5:  printf("♀"); break;   //5是人

           case 7:  printf("□"); break;  //4 + 3箱子在目的地中

           case 8:  printf("♀");break;   // 5 + 3人在目的地中

          }

       }

      printf("
");

   }

}

 

void gtxy(int x, int y)  //控制光标位置的函数

{ COORD coord;

 coord.X = x;

 coord.Y = y;

 SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);

}

 

void start( )  //开始游戏

{ int r, c;    //r,c用于记录人的下标

 for (int i = 0; i < 9; i++)

   { for (int j = 0; j < 11; j++)

       {if (map[m].a[i][j] == 5||map[m].a[i][j]==8) { r = i;  c = j; } } //i j 人的下标

   }

char key; 

 key = getch( );

 switch (key)

   {case 'W':

    case 'w':

    case 72:

      if (map[m]. a[r - 1][c] == 0|| map[m]. a [r - 1][c] == 3)

        { gtxy(2*c+8,r-1+3); printf("♀");   // gtxy(2*c+8,r-1+3)是到指定位置输出字符

          if(map[m]. a[r ][c] == 5){gtxy(2*c+8,r+3); printf("  "); }

         if(map[m]. a[r ][c] == 8){gtxy(2*c+8,r+3); printf("◎");}

         map[m]. a [r - 1][c] += 5;  map[m]. a [r][c] -= 5; }

      else  if (map[m]. a [r - 1][c] == 4 || map[m]. a [r - 1][c] == 7)

         { if (map[m]. a [r - 2][c] == 0 || map[m]. a [r - 2][c] == 3)

           { gtxy(2*c+8,r-2+3); printf("□"); gtxy(2*c+8,r-1+3); printf("♀");

             if(map[m]. a[r ][c] == 5){gtxy(2*c+8,r+3); printf("  "); }

             if(map[m]. a[r ][c] == 8){gtxy(2*c+8,r+3); printf("◎");}

             map[m]. a [r - 2][c] += 4;  map[m]. a [r - 1][c] += 1;

             map[m]. a [r][c] -= 5; }

        } break;

    case 'S':

    case 's':

    case 80:

        if (map[m]. a [r + 1][c] == 0 || map[m]. a [r + 1][c] == 3)

         { gtxy(2*c+8,r+1+3); printf("♀");

           if(map[m]. a[r ][c] == 5){gtxy(2*c+8,r+3); printf("  "); }

          if(map[m]. a[r ][c] == 8){gtxy(2*c+8,r+3); printf("◎");}

          map[m]. a [r + 1][c] += 5;  map[m]. a [r][c] -= 5; }

       else if (map[m]. a [r + 1][c] == 4 || map[m]. a [r+ 1][c] == 7)

           { if (map[m]. a [r + 2][c] == 0 || map[m]. a [r + 2][c] == 3)

             { gtxy(2*c+8,r+2+3); printf("□"); gtxy(2*c+8,r+1+3); printf("♀");

               if(map[m]. a[r ][c] == 5){gtxy(2*c+8,r+3); printf("  "); }

              if(map[m]. a[r ][c] == 8){gtxy(2*c+8,r+3); printf("◎");}

              map[m]. a [r + 2][c] += 4; map[m]. a [r + 1][c] += 1;

             map[m]. a [r][c] -= 5; }

          }break;

    case 'A':

    case 'a':

    case 75:

        if (map[m]. a [r ][c - 1] == 0 || map[m]. a [r ][c - 1] == 3)

          { gtxy(2*(c-1)+8,r+3); printf("♀");

           if(map[m]. a[r ][c] == 5){gtxy(2*c+8,r+3); printf("  "); }

          if(map[m]. a[r ][c] == 8){gtxy(2*c+8,r+3); printf("◎");}

           map[m]. a [r ][c - 1] += 5; map[m]. a [r][c] -= 5; }

       else if (map[m]. a [r][c - 1] == 4 || map[m]. a [r][c - 1] == 7)

          {if (map[m]. a [r ][c - 2] == 0 || map[m]. a [r ][c - 2] == 3)

            { gtxy(2*(c-2)+8,r+3); printf("□"); gtxy(2*(c-1)+8,r+3); printf("♀");

              if(map[m]. a[r ][c] == 5){gtxy(2*c+8,r+3); printf("  "); }

              if(map[m]. a[r ][c] == 8){gtxy(2*c+8,r+3); printf("◎");}

              map[m]. a [r ][c - 2] += 4; map[m]. a [r ][c - 1] += 1;

              map[m]. a [r][c] -= 5; }

         }break;

    case 'D':

    case 'd':

    case 77:

        if (map[m]. a [r][c + 1] == 0 || map[m]. a [r][c + 1] == 3)

         { gtxy(2*(c+1)+8,r+3); printf("♀");

           if(map[m]. a[r ][c] == 5){gtxy(2*c+8,r+3); printf("  "); }

           if(map[m]. a[r ][c] == 8) {gtxy(2*c+8,r+3); printf("◎");}

          map[m]. a [r][c + 1] += 5;  map[m]. a [r][c] -= 5; }

      else if (map[m]. a [r][c + 1] == 4 || map[m]. a [r][c + 1] == 7)

          { if (map[m]. a [r][c + 2] == 0 || map[m]. a [r][c + 2] == 3)

            { gtxy(2*(c+2)+8,r+3); printf("□"); gtxy(2*(c+1)+8,r+3); printf("♀");

              if(map[m]. a[r ][c] == 5){gtxy(2*c+8,r+3); printf("  "); }

             if(map[m]. a[r ][c] == 8){gtxy(2*c+8,r+3); printf("◎");}

             map[m]. a [r][c + 2] += 4; map[m]. a [r][c + 1] += 1;

             map[m]. a [r][c] -= 5; }

         }break;

    }

}

int ifwan( )  //是否完成(1是0否)

{ if(m==0){if(map[m].a[5][2]==7&& map[m].a[5][3]==7&&

                  map[m].a[6][2]==7&& map[m].a[6][3]==7) return 1;}

 if(m==1){if(map[m].a[5][2]==7&& map[m].a[6][2]==7&&

                  map[m].a[7][2]==7) return 1;}

 if(m==2){if(map[m].a[7][1]==7&& map[m].a[7][2]==7&& map[m].a[7][3]==7&&

                 map[m].a[7][4]==7&& map[m].a[7][5]==7) return 1;}

if(m==3){if(map[m].a[4][4]==7&& map[m].a[4][5]==7&& map[m].a[4][6]==7&&

        map[m].a[5][4]==7&& map[m].a[5][5]==7&& map[m].a[5][6]==7) return 1;}

if(m==4){if(map[m].a[3][2]==7&& map[m].a[4][1]==7&& map[m].a[4][2]==7&&

                map[m].a[5][1]==7&& map[m].a[5][2]==7) return 1;}

 return 0;

}

 

int main( )  //主函数

{ while (1)

     { system("cls");

       DrMap( );

       while (1)

           { start( );

             if(ifwan()){printf("\007");break;} //完成后响铃

          }

       m+=1;

    }

  return 0;

}



一个贪吃蛇C源代码,本人稍加优化,练手应当不错。
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <time.h>
#include <Windows.h>

#define WIDTH 78 //地图的宽,x轴
#define HEIGHT 26 //地图的高,y轴
int dire=3; //方向变量,初值为向“左”
int Flag=0; //判断是否吃了食物的标志
int score=0; //玩家得分

struct foods{ int x;
int y;
}food; //结构体food有2个成员
struct snakes{int len;
int speed;
int x[100];
int y[100];
}snake; //结构体snake有4个成员

void gotoxy( int x,int y) //获得句柄,才能控制光标移动
{ COORD coord;
coord.X=x;
coord.Y=y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
}

void gotoxy( int x,int y); //以下声明要用到的几个自编函数
void csh( );
void keyDown( );
void Move( );
void putFood( );
int pdOver( );

int main( ) //主函数
{ csh( );
while(1)
{ keyDown( );
Move( );
putFood( );
if(pdOver( ))
{system(“cls”);
gotoxy(WIDTH/2+1,HEIGHT/2);
printf(“游戏结束!T__T”);
gotoxy(WIDTH/2+1,HEIGHT/2+1);
printf(“玩家总分:%d分”,score);
getch( );
break; }
Sleep(snake.speed);
}
return 0;
}

void csh( ) //初始化界面
{ int i;
gotoxy(0,0);
CONSOLE_CURSOR_INFO cursor_info={1,0}; //光标值设为0就隐藏了
SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE),&cursor_info);

for(i=0;i<=WIDTH;i=i+2) //横坐标要为偶数,因为这里要打印的字符占2个位置
{ gotoxy(i,0); //打印上边框
printf("■");
gotoxy(i,HEIGHT); //打印下边框
printf("■");
}
for(i=1;i<HEIGHT;i++)
{ gotoxy(0,i); //打印左边框
printf("■");
gotoxy(WIDTH,i); //打印右边框
printf("■");
}
while(1)
{ srand((unsigned int)time(NULL)); //设定种子为当前时间
food.x=rand()%(WIDTH-4)+2;
food.y=rand()%(HEIGHT-2)+1;
if(food.x%2==0)break;
}
gotoxy(food.x,food.y); //到食物坐标处打印初试食物
printf("●");

snake.len=3; //蛇身长
snake.speed=350; //刷新蛇的时间,即是移动速度
snake.x[0]=WIDTH/2+1; //蛇头横坐标为偶数
snake.y[0]=HEIGHT/2; //蛇头纵坐标
gotoxy(snake.x[0], snake.y[0]); //打印蛇头
printf("■");

for(i=1;i<snake.len;i++)
{ snake.x[i]=snake.x[i-1]+2;
snake.y[i]=snake.y[i-1];
gotoxy(snake.x[i],snake.y[i]); //打印蛇身
printf("■");
}
return;
}

void keyDown( ) //按键操作
{ int key;
if(kbhit( )) //如有按键输入才执行下面操作
{ key=getch( );
if(key==224) //值为224表示按下了方向键,下面要再次获取键值
{ key=getch( );
if(key==72&&dire!=2)dire=1; //72为向上
if(key==80&&dire!=1)dire=2; //80为向下
if(key==75&&dire!=4)dire=3; //75为向左
if(key==77&&dire!=3)dire=4; //77为向右
}
if(key==13)
{ while(1) if((key=getch( ))==13) break; } //13为回车键,这儿用来暂停
}
}

void Move( ) //蛇移动一节
{ if(Flag==0) //如没吃食物,才执行下面操作擦掉蛇尾
{ gotoxy(snake.x[snake.len-1],snake.y[snake.len-1]);
printf(" ");
}
int i;
for (i = snake.len - 1; i > 0; i--) //从蛇尾起每节存储前一节坐标值(蛇头除外)
{ snake.x[i]=snake.x[i-1];
snake.y[i]=snake.y[i-1];
}
switch (dire) //以下判断蛇头该往哪个方向移动,并获取最新坐标值
{ case 1: snake.y[0]--; break;
case 2: snake.y[0]++; break;
case 3: snake.x[0]-=2; break;
case 4: snake.x[0]+=2; break;
}
gotoxy(snake.x[0], snake.y[0]); //打印蛇头
printf("■");
if (snake.x[0] == food.x && snake.y[0] == food.y) //如吃到食物执行以下操作
{ snake.len++; score += 50; snake.speed -= 5; Flag = 1;}
else Flag = 0;
if(snake.speed<160) snake.speed= snake.speed+5; //作弊码,不让速度无限加快
}

void putFood( ) //投放食物
{ if(Flag == 1) //如吃到食物才执行以下操作,生成另一个食物
{ while (1)
{ int i,n= 1;
srand((unsigned int)time(NULL)); //设定当前时间,接下产生食物坐标值
food.x = rand( ) % (WIDTH - 4) + 2;
food.y = rand( ) % (HEIGHT - 2) + 1;
for (i = 0; i < snake.len; i++) //随机生成的食物不能在蛇的身体上
{ if (food.x == snake.x[i] &&food.y == snake.y[i])
{ n= 0; break;}
}
if (n && food.x % 2 == 0) break; //n不为0且横坐标为偶数,食物坐标取值成功
}
gotoxy(food.x, food.y); //光标到取得的坐标处打印食物
printf("●");
}
return;
}

int pdOver( ) //判断游戏是否结束
{ int i;
gotoxy(2,HEIGHT+1); //以下打印一些其它信息
printf(“暂停键:Enter.”);
gotoxy(2,HEIGHT+2);
printf(“游戏得分:%d”,score);
if (snake.x[0] == 0 || snake.x[0] == WIDTH) return 1; //蛇头触碰左右边界
if (snake.y[0] == 0 || snake.y[0] == HEIGHT) return 1; //蛇头触碰上下边界
for (i = 1; i < snake.len; i++)
{ if (snake.x[0] == snake.x[i] && snake.y[0] == snake.y[i]) return 1; } //蛇头触碰自身
return 0;
}

#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <time.h>

#define numOfQuestions 10

void main()
{
srand(1);
for(int i=0;i<numOfQuestions ;i++)
{
bool add = rand()%2;
char oper = '-';
if(add) oper = '+';
int a = rand()%100;
int b = rand()%100;
if(!add)
{
while(b>a)b = rand()%100;
}
printf("%d %c %d =?", a, oper, b);
int answer = 0;
scanf("%d", &answer);
bool correct = false;
if(add)
{
if(answer == (a + b)) correct = true;
}
else
{
if(answer == (a - b)) correct = true;
}
if(correct)printf("回答正确!\n");
else printf("回答错误!\n");

}
}



求C语言经典小程序
题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。2.程序源代码:main(){ int i,j,k;printf("\\n");for(i=1;i<5;i++) /*以下为三重循环...

求c语言大佬帮助!帮我写个小程序,谢谢
int n);\/\/在屏幕上输出数组各元素的值(逗号分隔)#define N (10)int main(){ int a[N],b[N],c[N*2],i; srand(time(NULL)); Init(a,N); Print(a,N); Short(a,N); Print(a,N); Init(b,N); Print(b,N); Short(...

跪求C语言编程高手帮忙编个小程序,大一年级的
tot=a+b+c+d+e;printf("字符串中共有:%d字符\\n大写字母:%d个\\n小写字母:%d个\\n数字:%d个\\n空格:%d个\\n其他字符:%d\\n",tot,a,b,c,d,e);for(i=0;i<tot-1;i++){ iPos = i;for(j=i+1;j<tot;j++)if(ch[j]<ch[iPos])iPos=j;iTemp = ch[i];ch[i] = ch[...

谁能用C语言帮我写几个小程序 急求
1、include<stdio.h> int main(){ int max(int x,int y,int z);int a,b,c,d;scanf("%d%d%d",&a,&b,&c); \/\/scanf%d间不能有逗号,后面是输入的地址因此得加& d=max(a,b,c); \/\/输入的是abc,不是x,y,z\/\/x,y,z是形参a,b,c是实参 printf("max=%d",d);\/\/不是print是...

求一个示爱的小程序 C语言
C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,...

求C语言大佬编一个小程序,急!感激不尽!是一个有趣的文件搜索引擎
另一种是提交网站搜索,即网站拥有者主动向搜索引擎提交网址,它在一定时间内(2天到数月不等)定向向你的网站派出“蜘蛛”程序,扫描你的网站并将有关信息存入数据库,以备用户查询。随着搜索引擎索引规则发生很大变化,主动提交网址并不保证你的网站能进入搜索引擎数据库,最好的办法是多获得一些外部...

用C语言写一个小程序!
\/*money management system*\/ include "stdio.h"include "dos.h"include "conio.h"main(){ FILE *fp;struct date d;float sum,chm=0.0;int len,i,j=0;int c;char ch[4]="",ch1[16]="",chtime[12]="",chshop[16],chmoney[8];pp:clrscr();sum=0.0;gotoxy(1,1);printf("|...

C语言高手来一下帮我编个小程序
首先,我可以用字符串来做。我现在先把代码贴上:include <stdio.h> int main(){ char *str , *ch , *c[] = {"个位为:" , "十位为:" , "百位为:" , "千位为:" , "万位为:"};scanf("%s",str);int i = 0 ;\/\/要求1.求出它是几位数 printf("此数为%d位数\\n",(size...

C语言的小程序,单词接龙 在线跪求高手!!~
scanf("%c",&kaitou);fjielong(str,jielong,n,kaitou);printf("接龙后字符串为:%s",jielong);system("pause");return 0;} void fjielong(char pstr[][N],char *pjielong,int n_x,char kaitou_x){ int i;for(i=0;i<n_x;i++){ if(pstr[i][0]==kaitou_x){ strcpy(pjielong,...

用C语言编写一个小程序
此程序不仅展示了如何编写基本的C语言程序,还演示了如何使用循环和条件语句来解决问题。通过这种方式,初学者可以更好地理解素数的概念以及如何用编程语言实现数学计算。同时,程序的输出结果也提供了一个直观的方式,来展示哪些数字是素数,这对于学习和理解素数的性质非常有帮助。值得注意的是,此程序可以...