正文
c语言leave函数 c语言len函数的使用方法
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
打字练习软件 C语言程序
#include "stdio.h"
#include "time.h"
#include "stdlib.h"
#include "conio.h"
#include "dos.h"
#define xLine 70
#define yLine 20
#define full 100
#define true 1
#define false 0
/*---------------------------------------------------------------------*/
void printScreen(int level,int right,int sum,char p[yLine][xLine])/* 刷新屏幕的输出图像 */
{
int i,j;
clrscr();
printf("level:%d Press 0 to exit;1 to pause score:%d/%d\n",level,right,sum);/* 输出现在的等级c语言leave函数,击中数和现在已下落总数 */
printf ("----------------------------------------------------------------------\n");
for (i=0;iyLine;i++)
{
for(j=0;jxLine;j++)
printf ("%c",p[i][j]);
printf("\n");
}/* for (i) */
printf ("----------------------------------------------------------------------\n");
}/* printScreen */
/*---------------------------------------------------------------------*/
void leave()/* 离开程序时c语言leave函数,调用该函数结束程序。 */
{
clrscr();
printf ("\n\n\n\nThank you for playing.");
delay (2500);
exit (0);
}
/*----------------------------------------------------------------------*/
int levelChoice(int level)/* 进入游戏时选择游戏等级 */
{
while (true)/* void */
{
clrscr ();
printf("please input 1-9 to choice level.choice 0 to return.\n");
level=getch();
level=level-48;
if (level0level10) return (level);
else if (level==0)
leave ();
else
printf ("Please input a correct number!\n");
}/* while (true) */
}/* levelChoice */
/*---------------------------------------------------------------------*/
int newWord(int sum,char p[yLine][xLine])/* 随生成一个新的字符并将其加入数组的首行 */
{
int j,w;
if (sum!=full)
{
j=(rand()%(xLine-2))+1;
w=(rand()%26)+65;
p[0][j]=w;
return (++sum);
}/* if */
return (sum);
}/* newWord */
/*---------------------------------------------------------------------*/
int moving(int miss,char p[yLine][xLine])/* 将最后一行置空c语言leave函数,并使所有在数组中其c语言leave函数他行的字符下降一行 */
{
int i,j;
char w;
for (j=1,i=yLine-1;jxLine-1;j++)/* 遍历最后一行的所有字符,如果该字符非空则将其置空并使miss加一 */
{
if (p[i][j]!=' ')
{
miss++;
p[i][j]=' ';
}
}
for (i=yLine-2;i=0;i--)/* 从倒数第二行的最后一个字符开始开始向前遍历该数组内的元素,如果该位置非空则将该字符移动至下一行 */
{
for (j=xLine-2;j0;j--)
{
if (p[i][j]!=' ')
{
w=p[i][j];
p[i][j]=' ';
p[i+1][j]=w;
}/* if */
}/* for(j) */
}/* for(i) */
return (miss);
}/* moving */
/*---------------------------------------------------------------------*/
int wordHit(char p[yLine][xLine])
/*判断是否有字符从键盘键入。
如果有,则从最后一行的最后一个元素开始遍历该数组,找出该字符,并把对应位置置空,且返回1。
如果有输入,但屏幕上无对应项,或无输入则返回0*/
{
int i,j;
char key;
if(kbhit())/* 判断用户是否从键盘键入字符。如果kbhit返回值为 */
key=getch();
if(key)
{
if (key=='0') leave();
if (key=='1')
{
clrscr();
printf ("Press any key to continue.");
getch();
}
for (i=yLine;i0;i--)
{
for (j=xLine;j0;j--)
{
if (key-32==p[i-1][j-1])
{
p[i-1][j-1]=' ';
return (true);
}/* if */
}/* for (j) */
}/* for (i) */
sound(300);
}/* if (key) */
return (false);
}/* wordHit */
/*---------------------------------------------------------------------*/
int result(int right)
/*判断该次的成绩并输出对应的结果,询问用户是否继续,若继续,判断是否可以进入下一级别。*/
{
int score;
char yn;
score=right*100/full;
nosound();
clrscr();
if (score==100)
printf("perfect!\n");
else if (score=85)
printf("good!\n");
else if (score=70)
printf("That's OK!\n");
else
printf("you need to play again.\n");
printf("do you want to continue? Y/N\n");
for (;;)/* void */
{
yn=getch();
switch (yn)
{
case 'y' :
{
if (score=70) return(true);
else return(false);
}/* case */
case 'n' : leave ();
default : printf("Please input a correct choice:");
}/* switch */
}/* for */
}/* result */
/*---------------------------------------------------------------------*/
int start()/* 进入程序时调用该函数,提示其操作。 */
{
char c;
while (true)
{
clrscr ();
printf ("\n\n\n\n\n Welcome to type game!\n\n\n 1.start\n 2.How to play\n 0.Exit");
c=getch();
switch (c)
{
case '0' : leave();/* 用户选择退出,退出主程序 */
case '2' :
{
clrscr();
printf ("\n\n\n\n\n Hit the type when you see it on the screen.\n Press 0 to exit.\n Press 1 to pause\n 1.start\n 0.exit");
while (true)
{
c=getch ();
if (c=='0') leave();
if (c=='1') return (true);
}
}
case '1' : return (true);
}
}
}
/*----------------------------------------------------------------------*/
void main()
{
/*---------------------------------------------------------------------*/
/*函数声明*/
void printScreen(int level,int right,int sum,char p[yLine][xLine]);
void leave();
int levelChoice(int level);
int newWord(int sum,char p[yLine][xLine]);
int moving(int miss,char p[yLine][xLine]);
int wordHit(char p[yLine][xLine]);
int result(int right);
int start();
/*---------------------------------------------------------------------*/
char p[yLine][xLine];
int i,j,level,right,sum,n,m,miss;
srand(time(NULL));
start();
for (i=0;iyLine;i++)/* 初始化屏显数组 */
{
for (j=0;jxLine;j++)
if (j==0||j==xLine-1)
p[i][j]=140;
else
p[i][j]=' ';
}/* for (i) */
level=levelChoice(level);
for (;;)/* 开始运行主程序 */
{ sum=0;
right=0;
miss=0;
printf("Press any key to start!");
m=getch();
printScreen(level,right,sum,p);
for (n=0,m=4;;n++)
{
delay(20);/* 延迟 */
nosound();
if(m%4==0)/* 当m为4的整数倍,即上一个字母下落3行时生成一个新的字母在首行并刷新屏幕 */
{
sum=newWord(sum,p);
m=5;
printScreen(level,right,sum,p);
}/*if(newWord)*/
if (wordHit(p)==true)/* 如果用户输入c语言leave函数了字符并且正确,则使答对的数加一,并刷新屏幕 */
{
right++;
sound (1500);
printScreen(level,right,sum,p);
}/* if(wordHit) */
if(n==(37-4*level))/* 当n=37-4*level时,屏幕上的字母下落一行,并刷新屏幕,若最后一行有字母,则使错过数加一 */
{
n=0;
m++;
miss=moving(miss,p);
printScreen(level,right,sum,p);
}/* if (moving)*/
if(right+miss==full) break;/* 当正确数加错误数等于预置的总字母个数时跳出该循环 */
}
if (result (right)==truelevel9)/* 当用户成绩在70以上,并且等级小于9时,等级加一,即进入下一级别 */
level++;
}/* for(sum,right) */
}
//在tc3.0下编译通过
关于批处理if errorleave 的用法?高手指教
执行批处理程序中的条件处理。
IF
[NOT]
ERRORLEVEL
number
command
IF
[NOT]
string1==string2
command
IF
[NOT]
EXIST
filename
command
NOT
指定只有条件为
false
的情况下,
Windows
XP
才
应该执行该命令。
ERRORLEVEL
number
如果最后运行的程序返回一个等于或大于
指定数字的退出编码,指定条件为
true。
string1==string2
如果指定的文字字符串匹配,指定条件为
true。
EXIST
filename
如果指定的文件名存在,指定条件为
true。
command
如果符合条件,指定要执行的命令。如果指定的
条件为
FALSE,命令后可跟一个执行
ELSE
关键字后的命令的
ELSE
命令。
ELSE
子句必须在
IF
之后出现在同一行上。例如:
IF
EXIST
filename.
(
del
filename.
)
ELSE
(
echo
filename.
missing.
)
因为
del
命令需要用一个新行终止,以下子句不会有效:
IF
EXIST
filename.
del
filename.
ELSE
echo
filename.
missing
由于
ELSE
命令必须与
IF
命令的尾端在同一行上,以下子句也
不会有效:
IF
EXIST
filename.
del
filename.
ELSE
echo
filename.
missing
如果都放在同一行上,以下子句有效:
IF
EXIST
filename.
(del
filename.)
ELSE
echo
filename.
missing
如果命令扩展名被启用,IF
会如下改变:
IF
[/I]
string1
compare-op
string2
command
IF
CMDEXTVERSION
number
command
IF
DEFINED
variable
command
其中,比较运算符可以是:
EQU
-
等于
NEQ
-
不等于
LSS
-
小于
LEQ
-
小于或等于
GTR
-
大于
GEQ
-
大于或等于
及
/I
开关c语言leave函数;如果该开关被指定,则说明要进行的字符串比较不分
大小写。/I
开关可以用于
IF
的
string1==string2
的形式上。这些
比较都是通用的;原因是,如果
string1
和
string2
都是由数字
组成的,字符串会被转换成数字,进行数字比较。
CMDEXTVERSION
条件的作用跟
ERRORLEVEL
的一样,除c语言leave函数了它
是在跟与命令扩展名有关联的内部版本号比较。第一个版本
是
1。每次对命令扩展名有相当大的增强时,版本号会增加一个。
命令扩展名被停用时,CMDEXTVERSION
条件不是真的。
如果已定义环境变量,DEFINED
条件的作用跟
EXISTS
的一样,
除c语言leave函数了它取得一个环境变量,返回的结果是
true。
如果没有名为
ERRORLEVEL
的环境变量,%ERRORLEVEL%
会扩充为
ERROLEVEL
当前数值的字符串表达式;否则,您会得到
其数值。运行程序后,以下语句说明
ERRORLEVEL
的用法:
goto
answer%ERRORLEVEL%
:answer0
echo
Program
had
return
code
:answer1
echo
Program
had
return
code
1
您也可以使用以上的数字比较:
IF
%ERRORLEVEL%
LEQ
1
goto
okay
如果没有名为
CMDCMDLINE
的环境变量,%CMDCMDLINE%
将在
CMD.EXE
进行任何处理前扩充为传递给
CMD.EXE
的原始
命令行;否则,您会得到其数值。
如果没有名为
CMDEXTVERSION
的环境变量,
%CMDEXTVERSION%
会扩充为
CMDEXTVERSION
当前数值的
字串符表达式;否则,您会得到其数值。
C语言 计时函数时间差总为零
C语言中变量是有作用域的,除非定义了全局变量,一般而言不同的函数体中的变量相互不可见。
因此,主函数中的t_start与leave_car()函数中的t_start并不是同一个变量!
修改如下:
将主函数中的
time_t t_start,t_end;
t_start=time(NULL);
两个语句去掉,因为对整个程序而言没有实际的作用。
在leave_car()中
printf("yes");
前添加
t_start=time(NULL);
另外
printf("time is %f s\n",difftime(t_end,t_start);
少写了一个反括号
c语言leave函数的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c语言len函数的使用方法、c语言leave函数的信息别忘了在本站进行查找喔。