當前位置:編程學習大全網 - 編程語言 - 關鍵獨占編程

關鍵獨占編程

(增加了排序功能!基本的冒泡排序!)

通過Ascii碼識別密鑰。

輸入通過getch函數獲得的數字。

由於控制臺上不顯示getch,所以自定義函數實現了echo。

代碼實現了錄入和刪除功能。

輸入只認數字,按其他字符沒用。

退格鍵壹次刪除壹個字符,可以跨行刪除。

回車確認輸入壹個數字,下次輸入新數字時會自動換行(輸入後光標不會換行,刪除當前行可以回到上壹行)。

Ctrl+D結束程序。

註意:getch函數在windows系統下是正常的。它可能無法在linux系統下運行。

另外,我沒有寫數值大小驗證。數組變量的類型是int。如果輸入超過數值類型的上限,仍然會得到錯誤。如果要輸入更大的數字,可以更改longlong屬性。如果要添加驗證,可以自己添加到代碼中,也可以添加到輸入接收位。

# include & ltstdio.h & gt

# include & ltstdlib.h & gt

# include & ltconio.h & gt

#定義MAXS 100//數組大小

void showList(int *nums,int n,int flag);//打印數組

int inputNums(int *nums,int maxSize);//在maxSize內輸入數字並保存在maxSize中,返回輸入的數字個數。

void px(int *nums,int n);//按升序排序

int main()

{

int nums[MAXS],n=MAXS,cnt

cnt=inputNums(nums,n);

px(nums,CNT);

printf(" \ n升序排列的數字是:\ n ");

showList(nums,cnt,1);

返回0;

}

Int input nums (int * nums,int maxSize)//在maxSize內輸入壹個數字並保存在maxSize中,返回輸入數字的個數。

{

int i=1,cnt=0,n=MAXS,flag = 0;//flag:要保存的標誌;1:表示有數據要保存2:沒有數據要保存。

char c = 0;

while(我& lt=n)

{

c = getch();

如果(c!=13。& ampc!= 4 & amp& ampc & gt= ' 0 ' & amp& ampc & lt='9')// Input只接收和回顯數字字符。

{

如果(!旗幟)

nums[cnt]=0,cnt++,flag = 1;

nums[CNT-1]= nums[CNT-1]* 10+c-' 0 ';

}

if(c = = 8 & amp;& ampcnt & gt0)//退格刪除

{

if(nums[cnt-1]/10 >0)//如果當前輸入的數字大於1位,則刪除壹位。

nums[CNT-1]= nums[CNT-1]/10;

else If(nums[I-1]/10 = = 0)//如果當前輸入的數字只剩下1位,則當前輸入的數字將被刪除,數組數為-1。

{

nums[cnt-1]=0,CNT-;

如果(計數==0)

flag = 0;

其他

i -,flag = 1;

}

}

If(c==13)//輸入

i++,flag = 0;

if((c & gt;= ' 0 ' & amp& ampc & lt='9')||c==13||c==8)

system("cls "),showList(nums,cnt,0);

if(c==4)//ctrl+D

{

if(標誌)

flag = 0;

打破;

}

}

printf(" \ n輸入的數字是:\ n ");

showList(nums,cnt,1);

返回cnt

}

Void px(int *nums,int n)//按升序排列。

{

int i,j,num

for(I = 0;我& ltn;i++)

for(j = I+1;j & ltn;j++)

{

if(nums[I]& gt;nums[j])

{

num = nums[I];

nums[I]= nums[j];

nums[j]= num;

}

}

}

Void show list (int * nums,int n,int flag)//打印數組,flag:1打印模式;標誌:0顯示模式

{

int I;

如果(標誌& amp& ampn & gt0)

{

printf(" \ n ");

for(I = 0;我& ltn;i++)

printf("%d ",nums[I]);

printf(" \ n ");

}

else if(!旗幟& amp& ampn & gt0)

{

for(I = 0;我& ltn-1;i++)

printf("%d\n ",nums[I]);

printf("%d ",nums[I]);

}

}

  • 上一篇:2021年皇家墨爾本理工大學申請條件
  • 下一篇:求vb+access圖書管理系統帶論文的
  • copyright 2024編程學習大全網