键盘输入一个数,在排序后的数组中,采用折半查找法查找该数在数组中的 位置。如果查找到该数,输出信息

键盘输入一个数,在排序后的数组中,采用折半查找法查找该数在数组中的 位置。如果查找到该数,输出信息,第1张

#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的值,并输出计算结果。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9663404.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存