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樓:雲南新華電腦學校 我寧願你冷酷到底 讓我死心塌地忘記 我寧願你絕情到底 讓我徹底的放棄 我寧願只傷心一次 也不要日夜都傷心 我寧願你冷酷到底 請別再說 你走的那場夜雨 淋溼我的傷心 抹不去你留下虛偽的脣印 回想你欺騙的話語 既然已決定離去 為何還留下殘情 讓我以為你是否不得已 讓我不能徹底忘記 我寧願你冷酷到底 讓我死心塌地忘記 我寧願你絕情到底 讓我徹底的放棄 我寧願只傷心一次 也不要日夜都傷心 我寧願你冷酷到底 請別再說 我愛你 啊 我愛你 啊 你走的那場夜雨 淋溼我的傷心 抹不去你留下虛偽的脣印 回想你欺騙的話語 你既然已決定離去 為何還留下殘情 讓我以為你是否不得已 讓我不能徹底忘記 我寧願你冷酷到底 讓我死心塌地忘記 我寧願你絕情到底 讓我徹底的放棄 我寧願只傷心一次 也不要日夜都傷心 我寧願你冷酷到底 請別再說 我寧願你冷酷到底 讓我死心塌地忘記 我寧願你絕情到底 讓我徹底的放棄 我寧願只傷心一次 也不要日日夜夜都傷心 我寧願你冷酷到底 請別再說 我愛你 啊 我愛你 啊 我愛你 啊 我愛你 程式一 include int main 輸出 50,60,45,80 顯然你舉的例子50,30,40,60不滿足條件 厚度不一致 include void put w int n 輸出 w void cacl 計算資金 int mingbs int n1,int n2,int n3 求最小公倍數 ... 現在世界上有3大危險作業 建築工人的高空作業 礦井工人的地下作業 中小學生的不寫作業 哥們,你得自己寫作業啊. 澄新滿友安 include main float daoshu int a,int b returns 戴舟漆雕銀柳 include intmain void c語言程式設計題,急! 龍霸... 用夢竹 include define n 3 int main b n n i,j for i 0 i 3 i for j 0 j 3 j b i j a 2 i j for i 0 i 3 i return 0 時間有限,只做了第一個。注 如果題目上有例子,可以直接按例題寫 這個 如果想改可以改n...C語言程式設計!!求大神幫助急啊,一道C語言程式設計題,求大神解答,急!!!
急!C語言程式設計題,c語言程式設計題,急!
c語言程式設計題,C語言程式設計題