
#include
//二分法在数组pArray中以升序查找x
int BinarySearch(int x, int pArray, int nMinArraySubScript, int nMaxArraySubScript)
{
int mid=-1;
int nValue = -1;
if (pArray == NULL) return -1;
mid = (nMinArraySubScript + nMaxArraySubScript)/ 2;
nValue = (pArray + mid);
if (x < nValue)
{
mid=BinarySearch(x,pArray, 0,mid-1);
}
else if(x > nValue)
{
mid=BinarySearch(x, pArray, mid+1, nMaxArraySubScript);
}
}
return mid;
}
void main()
{
int nArray[10] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
int nPosition = -1;
int x = 2;
scanf("%d", &x);
nPosition = BinarySearch(x, nArray, 0, 9);
printf("%d: %d\n", x, nPosition);
}
上例中如果x=2,则输出结果如下:
2:2
你可以使用热键来实现你要的功能 不需要窗口焦点 代码如下using SystemRuntimeInteropServices; [DllImport("user32dll", EntryPoint = "RegisterHotKey")]
public static extern bool RegisterHotKey
(
IntPtr hWnd, //要注册热键的窗口句柄
int id, //热键编号
int fsModifiers, //特殊键如:Ctrl,Alt,Shift,Window
int vk //一般键如:A B C F1,F2 等
); [DllImport("user32dll", EntryPoint = "UnregisterHotKey")]
public static extern bool UnregisterHotKey
(
IntPtr hWnd, //注册热键的窗口句柄
int id //热键编号上面注册热键的编号
);
private const int WM_HOTKEY = 0x312;
private enum MyKeys
{
None = 0,
Alt = 1,
Ctrl = 2,
Shift = 4,
Win = 8
}
private void Form1_Load(object sender, EventArgs e)
{
RegisterHotKey(thisHandle, 1, (int)(MyKeysCtrl | MyKeysAlt), (int)KeysW);//Ctrl+Alt+W
RegisterHotKey(thisHandle, 2, (int)(MyKeysNone), (int)KeysH);//直接按H
} private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
UnregisterHotKey(thisHandle, 1);
UnregisterHotKey(thisHandle, 2);
} protected override void WndProc(ref Message m)
{
if (mMsg == WM_HOTKEY)
{
switch (mWParamToInt32())
{
case 1://按Ctrl+Alt+W时显示窗体
thisShow();
thisWindowState = FormWindowStateNormal;
break;
case 2://直接按H输出AAAA
MessageBoxShow("AAAA");
break;
default:
break;
}
}
baseWndProc(ref m);
}
1、以C#控制台应用程序为例:
ConsoleWriteLine("输入3个整数,之间以逗号分隔,回车键结束");
string str = ConsoleReadLine(); //读入用户输入信息
string[] input = strSplit(new char[] { ',' }); //以逗号为分隔符,分离出各项
if (inputCount() == 3) //不是3,用户输入错
{
try
{
//异常处理,用户输入非整数会引发异常处理
int a = intParse(input[0]), b = intParse(input[1]), c = intParse(input[2]);
int value1 = a + b c; //计算表达式
ConsoleWriteLine("a+bc的计算结果:" + value1ToString());
}
catch
{
ConsoleWriteLine("用户输入错误!"); //当用户输入非整数时,执行
}
}
else
ConsoleWriteLine("用户输入错误!"); //用户输入不符合指定格式,执行
ConsoleWriteLine("按回车键退出程序");
ConsoleReadLine(); //调试时,防止程序结束,看不到执行结果
2、执行结果如下:
3、当用户输入错误
注:ConsoleReadLine();是以回车键结束。
扩展资料:
C#控制台程序的输入输出
信息输入到控制台:有三个方法可以实现
ConsoleReadKey():获取按下的键盘,一般用来暂停控制台程序。
ConsoleRead(): 返回值为首字符的ASCII码
ConsoleReadLine():获取输入的字符串
将信息输出到控制台:有两个方法实现、
ConsoleWriteLine()输出一行,进行换行。
ConsoleWrite()输出一行,不换行。
在C语言中实现用键盘输入一个字符串,并打印出来的解决方法如下:
1、首先定义一个字符串数组,如你可以给字符串100个数组空间。如图括号内数字即为你定义的数组大小。
2、gets()函数用来获取键盘输入的字符串,括号内的s即为字符串变量。
3、接着用puts()函数输出之前我们从键盘读取的字符串。括号内为字符串数组的名字,要与前面的保持一致。
4、然后点击运行,得到以下结果即为正确。
扩展资料:
字符数组的输出:
(1)用putchar()或printf()的‘%c’格式符对数组进行字符赋值。例如,对于数组a[10]:用putchar()赋值:
for(i=0;i<10;i++)
a[i]=putchar();
用printf()赋值:
for(i=0;i<10;i++)
printf("%c",a[i]);
输出结果为:
c program [2]
(2)用printf()的'%s'格式对数组赋值。还是对于数组a[10];
printf("%s",a);
输出结果为:
c program
参考资料来源:
百度百科-char
百度百科-字符数组
将内容输出到文本中要用ofstream这个类来实现。具体步骤如下。 ofstream mycout("temptxt");//先定义一个ofstream类对象mycout,括号里面的"temptxt"是我们用来保存输出数据的txt文件名。这里要注意的是我们的"temptxt"用的是相对路径
C语言中两种方法都可以,但有区别scanf("%s",s)是读取不到空格的。而gets(s)可以读取。两种方法都是一个一个字符读取的。不同的是scanf是遇到空格或者回车键就会结束,但gets是只有输入回车键才会终止读取字符串!下面是例子:#includeintmain(){ charx[10]; scanf("%s",x); printf("%s",x); return0;}下面是gets;#includeintmain(){ charx[10]; gets(x); printf("%s",x); return0;}
以上就是关于键盘输入一个数,在排序后的数组中,采用折半查找法查找该数在数组中的 位置。如果查找到该数,输出信息全部的内容,包括:键盘输入一个数,在排序后的数组中,采用折半查找法查找该数在数组中的 位置。如果查找到该数,输出信息、C#中怎么获取键盘的记录,窗口没焦点也能获取的、编写一个程序,从键盘输入三个整数a.b.c,计算表达式a+b*c的值,并输出计算结果。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)