1樓:自我程式設計
(已補充排序功能!基本氣泡排序!)
通過ascii碼來識別按鍵。
輸入採用getch函式獲取字元再轉數字。
由於getch不在控制檯顯示,自定義函式實現回顯。
**實現了錄入,刪除功能。
錄入只識別數字,其他字元按了也沒用。
退格鍵一次刪一個字元,可以跨行刪除。
回車確認一個數字的輸入,下次輸入新數字自動換行(回車後游標不換行,另外刪除當前行可以反退到上一行)。
ctrl+d結束程式。
注意:getch函式在windows系統下正常。linux系統下不一定能執行。
另外,我沒有寫數值大小驗證,陣列變數是int型,如果你輸入超出數值型別上限還是會報錯的,想要輸入更大的數字,可以換longlong性。想加驗證,自己在**里加好了,可以加在輸入接收的位置。
#include
#include
#include
#define 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);
return 0;
int inputnums(int *nums,int maxsize)//輸入maxsize個以內的數字儲存在maxsize中,返回輸入的數字個數
int i=1,cnt=0,n=maxs,flag=0;//flag:待儲存標識;1:標識有資料待儲存2:無資料待儲存
char c=0;
while(i<=n)
c=getch();
if(c!=13 && c!=4 && c>='0' && c<='9')//輸入只接收並回顯數字字元
if(!flag)
nums[cnt]=0,cnt++,flag=1;
nums[cnt-1]=nums[cnt-1]*10+c-'0';
if(c==8 && cnt>0)//退格刪除
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--;
if(cnt==0)
flag=0;
else
i--,flag=1;
if(c==13)//回車
i++,flag=0;
if((c>='0' && c<='9')||c==13||c==8)
system("cls"),showlist(nums,cnt,0);
if(c==4)//ctrl+d
if(flag)
flag=0;
break;
printf("\n輸入的數字為:\n");
showlist(nums,cnt,1);
return cnt;
void px(int *nums,int n)//升序排列
int i,j,num;
for(i=0;ifor(j=i+1;jif(nums[i]>nums[j])
num=nums[i];
nums[i]=nums[j];
nums[j]=num;
void showlist(int *nums,int n,int flag)//列印陣列,flag:1列印模式;flag:0顯示模式
int i;
if(flag && n>0)
printf("\n");
for(i=0;iprintf("%d ",nums[i]);
printf("\n");
else if(!flag && n>0)
for(i=0;iprintf("%d\n",nums[i]);
printf("%d",nums[i]);
2樓:匿名使用者
#include
#include
int main() {
int i = 0,j,k,r;
float array[100], f;
puts("需要排序的數字:");
while (i < 100) {
r = scanf("%f", &array[i]);
if (r == eof)
break;
if (r == 0) {
puts("輸入錯誤");
while (getchar()!='\n');
continue;
++i;
for (j=0; jfor (k=j+1; kif (array[j] > array[k]) {
f = array[j];
array[j] = array[k];
array[k] = f;
puts("升序排好的數字:");
for (j=0; jprintf("%g\n", array[j]);
3樓:匿名使用者
#include
#include
int main()
;char buffer[bufsiz]=;
for (size_t i=0;
++i) arr[i]=n; }for (size_t i=0; i return 0; }手機寫的 沒有驗證 你試試看 4樓:聽不清啊 把輸入的整數讀入,然後存放到陣列當中,一邊讀數一邊記數。全部讀書完成以後進行排序,然後最後進行輸出。 5樓:剛學c語言程的猴子 這個用到迴圈 用到if的條件語句 第一個for裡面包含著第if語句 排序就另外再寫一個語句 這個好像可以字串讀取的方式 6樓:蠑螈 嗯......這個並不難 會用到if和for語句 7樓:百小度 不難 你沒有時間做嗎? 急求幫助,c語言程式設計作業,實在是不會了,拜託大家幫幫忙 8樓:中國死狗 1、#include void main(void) 5、#include void main(void)} 9樓:勢如雲 唉!這些都是《c程式設計》第二版後面的習題,你去買一本《c程式設計與上機指導》的書,也是譚浩強的,很便宜,後面有所有的習題解答。我這裡有書,不過要敲上去也太費時間了。 c語言程式設計題
10 10樓:雲南新華電腦學校 我寧願你冷酷到底 讓我死心塌地忘記 我寧願你絕情到底 讓我徹底的放棄 我寧願只傷心一次 也不要日夜都傷心 我寧願你冷酷到底 請別再說 你走的那場夜雨 淋溼我的傷心 抹不去你留下虛偽的脣印 回想你欺騙的話語 既然已決定離去 為何還留下殘情 讓我以為你是否不得已 讓我不能徹底忘記 我寧願你冷酷到底 讓我死心塌地忘記 我寧願你絕情到底 讓我徹底的放棄 我寧願只傷心一次 也不要日夜都傷心 我寧願你冷酷到底 請別再說 我愛你 啊 我愛你 啊 你走的那場夜雨 淋溼我的傷心 抹不去你留下虛偽的脣印 回想你欺騙的話語 你既然已決定離去 為何還留下殘情 讓我以為你是否不得已 讓我不能徹底忘記 我寧願你冷酷到底 讓我死心塌地忘記 我寧願你絕情到底 讓我徹底的放棄 我寧願只傷心一次 也不要日夜都傷心 我寧願你冷酷到底 請別再說 我寧願你冷酷到底 讓我死心塌地忘記 我寧願你絕情到底 讓我徹底的放棄 我寧願只傷心一次 也不要日日夜夜都傷心 我寧願你冷酷到底 請別再說 我愛你 啊 我愛你 啊 我愛你 啊 我愛你 1.編寫一個程式,要求使用者從終端輸入兩個整數值,檢測這兩個整數,判定第一個數能否被第二個數整除,並在終端上顯示相應的資訊.include main 2.編寫一個程式,把從終端上輸入的整數用英語顯示該整數的每一位數字.如果使用者輸入了392,那麼程式應顯示three nine two.include... 自己好好看書 這個太基礎了 c語言程式設計題求大神幫忙!include int main void newstr k 0 i 0,j k 1 while i j i j if i j printf s no n newstr else printf 迴文串 yes n return 0 急!c語言程... long fun int k if i 2 return 1l return k fun k 1 或 include stdio.h main double h,c printf input h n scanf lf h c 5.0 9 h 32 printf c lf c 實驗一 簡單的c程式設計...求c語言程式設計題答案謝謝求C語言程式設計題答案,謝謝!
c語言程式設計題求大神幫忙解答,C語言程式設計題,求大神幫忙解答!
C語言程式設計題,C語言程式設計題