求高手 C语言小程序 程序不要太长50行以内最好 要有新意,变态级别的可以

是在linux 系统下的小程序

第1个回答  2013-05-03
给你一个猜拳的小游戏吧。

#include<stdio.h>
int main()
{
int flag=1,p=0;
int a,b,t;
printf("游戏规则如下:\n");
printf("1-石头,2-剪刀,3-布 0-结束 (其他数字无效,需重新输入)\n\n");
printf("**===**===**===**===**===**===**===**===**\n\n");
while(flag==1)
{
printf("甲:");
scanf("%d",&a);
if(a==0) break;
do
{
if((a>0)&&(a<4))break;
else
{
printf("输入有误,请重新输入 ");
scanf("%d",&a);
}
}
while(p==0);
printf("乙:");
scanf("%d",&b);
if(b==0) break;
do
{
if((b>0)&&(b<4))break;
else
{
printf("输入有误,请重新输入");
scanf("%d",&b);
}
}
while(p==0);
printf("\n");
t=a-b;
if(t==0)
printf("平局\n\n");
else if(t==-1||t==2)
printf("甲胜,乙输!\n\n");
else printf("乙胜,甲输!\n\n");
}
printf("\n游戏结束!!\n");
return 0;
}
第2个回答  2013-05-03
/*
*
* KMP算法
* 算法思想详见数据结构,查找子串一节
*
*/
#include <stdio.h>
#define MAXSIZE 128 /*定义next数组长度*/
int find_sub_string(const char *str, const char *substr);
int main(void)
{
char *str = "hello world";
char *sub_str = "llo";
int result = 0;
result = find_sub_string(str, sub_str);
printf("%d\n", result);
printf("Please input any key to exit...");
getch();
return 0;
}
int find_sub_string(const char *str, const char *substr)
{
int i = 0;
int j = 0;
int next[MAXSIZE] = {0};
next[0] = 0;
next[1] = 0;
i = 1;
while (i < strlen(substr)-1) /*由子串确定next数组中的元素*/
{
if (substr[i] == substr[j])
{
i++;
j++;
next[i] = j;
}
else if (0 == j)
{
i++;
next[i] = j;
}
else
{
j = next[j];
}
}
i = 0;
j = 0;
while ((i < strlen(str)) && (j < strlen(substr))) /*查找子串的位置*/
{
if (str[i] == substr[j])
{
i++;
j++;
}
else if (0 == j)
{
i++;
}
else
{
j = next[j];
}
}
if (j >= strlen(substr))
{
return (i-j);
}
else
{
return -1;
}
}

追问

getch strlen 没有定义

追答

getch() 删除了
加上头文件#include

本回答被提问者采纳
第3个回答  2013-05-03
贪吃蛇。。。。。。。。。。。。。以前的代码不知道放哪里去了,,,,,只能帮你到这里了
第4个回答  2013-05-03
你是想出题目吗?追问

没啊,最好是在linux下

相似回答