當前位置:首頁 » 編程語言 » c語言任意輸入順序
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言任意輸入順序

發布時間: 2022-09-10 19:30:37

A. c語言--怎樣實現輸入任意幾個數排序

把循環次數改成你想要的數就可以了。

比如上面你的程序,for語句中的i<=9,這個9改成你想要的次數。另一種方法,這個次數也作為一個變數從鍵盤輸入,這樣適應性相對來說好一些,不用每次都編譯程序。

提醒,如果是大批量的輸入數據,用鍵盤逐個輸入數據是比較低效和低准確率的方法,通常採用數據文件(比如一個文本文件)的方式。

你能問出這個問題來,說明你對上面的代碼還沒有理解透徹,好好學習吧。
----------------------------------------------------
對於lz的補充的回答:
我前面說的:另一種方法,這個次數也作為一個變數從鍵盤輸入,這樣適應性相對來說好一些,不用每次都編譯程序。

但是有一個問題,就是C不支持動態定義數組。解決方法兩種:一、定義一個足夠大的數組(但有越界的可能,程序里要做判斷和控制)。二、使用動態內存分配,可以從根本上解決此問題。

還有一種折中的辦法,就是對排序數定義一個宏,程序中的循環都使用這個宏來控制循環,如果排序數量更改了,雖然需要重新編譯程序,但是也很好修改,只要改這個宏的數值就可以了。

B. c語言任意輸入5個數,並按從大到小順序輸出

可以採用以下的代碼進行計算:

#include<stdio.h>

#include<stdlib.h>

intmain()

{

inta[5];

inti,j,k;

for(i=0;i<=4;i++)

{

scanf("%d",&a[i]);

}

for(i=0;i<=4;i++)

{

for(j=0;j<=4;j++)

{

if(a[i]>a[j])

{

k=a[i];a[i]=a[j];a[j]=k;

}

}

}

printf("排序結果是: ");

for(i=0;i<=4;i++)

{

printf("%d ",a[i]);

}

return0;

}

(2)c語言任意輸入順序擴展閱讀:

數據類型關鍵字

short:修飾int,短整型數據,可省略被修飾的int。(K&R時期引入)

long:修飾int,長整型數據,可省略被修飾的int。(K&R時期引入)

long long:修飾int,超長整型數據,可省略被修飾的int。(C99標准新增)

signed:修飾整型數據,有符號數據類型。(C89標准新增)

unsigned:修飾整型數據,無符號數據類型。(K&R時期引入)

restrict:用於限定和約束指針,並表明指針是訪問一個數據對象的唯一且初始的方式。(C99標准新增)

復雜類型關鍵字

struct:結構體聲明。(K&R時期引入)

union:聯合體聲明。(K&R時期引入)

enum:枚舉聲明。(C89標准新增)

typedef:聲明類型別名。(K&R時期引入)

sizeof:得到特定類型或特定類型變數的大小。(K&R時期引入)

inline:內聯函數用於取代宏定義,會在任何調用它的地方展開。(C99標准新增)

C. c語言用冒泡法選擇法從鍵盤任意輸入十個小寫字母,按從大到小的順序排序輸出。

1 輸入;
2 排序;
3 輸出。
參考代碼如下:
#include <stdio.h>
int main()
{
int a[10];//用來存數據
int i,j,temp;

for(i = 0; i < 10; i ++)//輸入10個數。
scanf("%d",&a[i]);
for (j = 0; j < 9; j++)//標准冒泡法排序
for (i = 0; i < 9- j; i++)
{
if(a[i] > a[i + 1])
{
temp = a[i];
a[i] = a[i + 1];
a[i + 1] = temp;
}
}

for(i = 0; i < 10; i ++)//輸出。
printf("%d,",&a[i]);
printf("\n");

return 0;
}

D. C語言如何用選擇法排序任意輸入十個數(從大到小、從小到大)

#include
<stdio.h>
main(void)
{
int
i,j,a[10],p=0,t=0,temp;
printf("請輸入原數組:\n");
for(j=0;j<10;j++)
scanf("%d",&a[j]);
temp=a[0];
for(j=0;j<9;j++)
{
t=j;
temp=a[j];
for(i=j+1;i<10;i++)
if(temp>a[i])
//這是由小到大排序
如果是大到小則改為
if(temp<a[i])
{temp=a[i];p=i;}
{temp=a[p];a[p]=a[t];a[t]=temp;}
}
printf("排序後的數組為:\n");
for(j=0;j<10;j++)
printf("%d
",a[j]);
}

E. C語言程序從鍵盤任意輸入兩個整數,按照其從小到大的順序輸出

main()
{
int a,b,num;
scanf("%d%d",&a,&b);
if (a>b)
{num=a;a=b;b=num;} /*因為a值大,把a值先賦給num,然後把b值賦給a,a就變小,然後把num也就是之前a的大值賦給b,這個時候就把a和b的值交換了。*/
printf("小到大排序: %d %d\n",a,b);
}
上面那一行解釋就是這個題的思路,有什麼不懂歡迎繼續追問

F. C語言中從鍵盤上輸入三個數,將之排序後按由大到小的順序輸出

具體操作方法如下:

#include<stdio.h>

int main(void)

{int a,b,c,t;

printf("請輸入三個數");

scanf("%d%d%d",&a,&b,&c);

if(a<b)

{t=a;a=b;b=t;}

if(b<c)

{t=b;b=c;c=t;}

if(a<b)

{t=a;a=b,b=t;}

printf("從大到小:%d %d %d",a,b,c);

system("pause");

return 0;}

注意:中間的t=a;a=b;b=t,就是交換a和b的位置,總是把大的換到前面來。

(6)c語言任意輸入順序擴展閱讀:

c語言任意輸入5個數,並按從大到小順序輸出的方法如下:

#include <stdio.h>

#include <stdlib.h>

int main()

{int a[5];

int i,j,k;

for(i=0;i<=4;i++)

{scanf("%d",&a[i]);}

for(i=0;i<=4;i++){

for(j=0;j<=4;j++)

{if(a[i]>a[j])

{k=a[i]; a[i]=a[j]; a[j]=k;}}}

printf("排序結果是: ");

for(i=0;i<=4;i++)

{ printf("%d ",a[i]);

}return 0;

G. c語言編輯程序,任意輸入3個數,按從大到小的順序輸入

思路:三個數按從大到小順序輸出,可以先求出三個數中的最大值和最小值,三個數的和減去最大值和最小值的差就是中間數,接著依次輸出即可。
參考代碼:
#include "stdio.h"
int main()
{
int a,b,c,max,min;
scanf("%d%d%d",&a,&b,&c);
if(a>b){
max=a;
min=b;
}
if(c>max) max=c;
if(min>c) min=c;
printf("從大到小排序:%d %d %d\n",max,a+b+c-max-min,min);
}
/*
運行結果:
3 1 2
從大到小排序:3 2 1
*/

H. C語言如何從鍵盤輸入任意3個數,按從小到大的順序輸出

代碼1.

//輸入3個數,要求按從小到大順序輸出

#include<stdio.h>

intmain()
{
inta,b,c,t;
printf("請輸入三個數:");
scanf("%d%d%d",&a,&b,&c);
if(a>b)
{
t=a;
a=b;
b=t;
}
if(a>c)
{
t=a;
a=c;
c=t;
}
if(b>c)
{
t=b;
b=c;
c=t;
}
printf("從小到大的順序是:%d%d%d ",a,b,c);
return0;
}

代碼2.

輸入3個字元串,按從小到大順序輸出。//先用程序對三個數進行從小到大排序,然後修改程序
#include<stdio.h>
#include<string.h>
intmain()
{voidswap(char*pt1,char*pt2);
chara[20],b[20],c[20];
char*p1,*p2,*p3;
printf("請輸入三個字元串:");
gets(a);
gets(b);
gets(c);
//或用scanf("%s,%s,%s",a,b,c);
p1=&a[0];p2=&b[0];p3=&c[0];//三個指針分別指向三個字元數組
if(strcmp(*p1,*p2)>0)swap(p1,p2);//if(strcmp(a,b)>0)swap(a,b);//比較兩個字元串的大小,為什麼用前一句的時候會出現警告呢

if(strcmp(a,c)>0)swap(a,c);//if(strcmp(*p1,*p3)>0)swap(*p1,*p3);
if(strcmp(b,c)>0)swap(b,c);//if(strcmp(*p2,*p3)>0)swap(*p2,*p3);
printf("由小到大排列:%s %s %s ",a,b,c);
return0;
}

voidswap(char*pt1,char*pt2)
{chart[20];
strcpy(t,pt1);
strcpy(pt1,pt2);
strcpy(pt2,t);
//t=*pt1;*pt1=*pt2;*pt2=t;
}

代碼3.

#include<stdio.h>
#include<string.h>
#defineSIZE3
#defineLEN50


intmain(void)
{
charstr[SIZE][LEN];
char(*pst)[LEN]=str;
chartemp[LEN];
inti,j;

printf("Pleaseenter3string. ");

for(i=0;i<SIZE;i++)
{
fgets(*(pst+i),LEN,stdin);
}
printf("Beforsort: ");

for(i=0;i<SIZE;i++)
{
fputs(*(pst+i),stdout);

}
for(i=0;i<SIZE-1;i++)
for(j=i+1;j<SIZE;j++)
{

if(strcmp(*(pst+i),*(pst+j))==1)
{
strcpy(temp,*(pst+i));
strcpy(*(pst+i),*(pst+j));
strcpy(*(pst+j),temp);
}

}
printf("Aftersort: ");
for(i=0;i<SIZE;i++)
{
fputs(*(pst+i),stdout);
}

}