『壹』 c語言編程,對用戶輸入的 N ( 0 < N <= 20) 個實數進行升序排序並輸出排序結果
如同你的第一個輸入語句一樣,第二處的圖文語句也要用&取地址符號。還有排序時的范圍也錯了。改正後的程序如下,已經運行通過:
#include<stdio.h>
voidmain()
{
inti,o,p;
floata[100],t;
scanf("%d",&o);
for(i=0;i<o;i++)
{
scanf("%f",&a[i]);
}
for(i=0;i<o-1;i++)
{
for(p=0;p<o-i-1;p++)
{
if(a[p]>a[p+1])
{
t=a[p];
a[p]=a[p+1];
a[p+1]=t;
}
}
}
for(i=0;i<o;i++)
{
printf("%.1f",a[i]);
}
printf(" ");
}
『貳』 C語言如何輸入十個數,按從大到小順序排列!
用選擇排序法編寫c語言,實現從鍵盤上輸入10個數,按從大到小的順序排序輸出。代碼如下:
#include<stdio.h>
int main()
{
int i,j,a[10],t;
printf("輸入數");
for (i = 0; i < 10; i++)
scanf("%d",&a[i]);
for (i = 0; i < 10; i++)
{
for (j = i + 1; j < 10;j++)
if (a[i] < a[j]){
t = a[i];
a[i] = a[j];
a[j] = t;
}
}
printf("從大到小");
for (i = 0; i < 10; i++)
printf("%2d", a[i]);
return 0;
}
(2)c語言輸入實數排序擴展閱讀:
代碼還可以設計,如下:
#include<stdio.h>
int main()
{
int a[10],i,j,t;//定義數組;
for(i=0;i<10;i++){
scanf("%d",&a[i]);//給數組賦值;
}
for(i=0;i<9;i++)//10個數,進行9輪比較;
for(j=0;j<10-i;j++){//第一個數比較9次,依次遞減;
if(a[j]>a[j+1]) {//交換值;
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
for(i=0;i<10;i++){
printf("%d ",a[i]);//輸出數組的值;
}
return 0;
}
}
printf("the sorted numbers: ");
for(i=0;i<10;i++)
printf(" %d",a[i]);
printf(" ");
}
『叄』 輸入兩個實數,按代數值由大到小的順序輸出這兩個數。(都用C語言實現)
void
main()
{
int
a,b;
printf("請輸入兩個數字,將判斷他們誰大");
scanf("%d%d",&a,&b);
if(a>b)
{
printf("%d大於%d",a,b);
}
if(a<b)
{
printf("%d大於%d",b,a);
}
else
{
printf("兩個數一樣大");
}
}
『肆』 C語言輸入一個整數n,再輸入n個實數,用冒泡排序法為實數序列做降序排序
#include<stdio.h>
int main()
{
int n;
float a[100],t;
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%f",&a[i]);
}
for(int i=0;i<n;i++)
{
for(int j=0;j<n-i-1;j++)
{
if(a[j]<a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
for(int i=0;i<n;i++)
{
printf("%.2f ",a[i]);//保留兩位小數
}
return 0;
}
『伍』 C語言編程序:輸入兩個實數,按代數值由大到小的順序輸出這兩個數。
#include<stdio.h>
void main()
{
float a,b,t;
scanf("%f,%f",&a,&b);
if(a>b)//這里多了個;,就是沒有進入if下面的調換,去掉就可以了
{t=a;
a=b;
b=t;}
printf("%f,%f\n",a,b);
}
『陸』 C語言編程,用選擇法對數組中20個實數進行排序
選擇排序法:
#include
"stdio.h"
#define
N
20
main()
{
int
i,j,k;
float
a[N],t;
printf("請輸入二十位數:\n");
for(i=0;i<N;i++)
scanf("%f",&a[i]);
for(i=0;i<N-1;i++)
{
k=i;
for(j=i+1;j<N;j++)
if(a[k]>a[j])
k=j;
if(i!=k)
{
t=a[k];
a[k]=a[i];
a[i]=t;
}
}
for(i=0;i<N;i++)
printf("%f\t",a[i]);
printf("\n");
}
插入排序法:
#include
"stdio.h"
#define
N
20
main()
{
int
i,j;
float
a[N],k;
printf("請輸入二十位數:\n");
for(i=0;i<N;i++)
scanf("%f",&a[i]);
for(i=0;i<N;i++)
{
k=a[i];
j=i-1;
while(j>=0&&k<a[j])
{
a[j+1]=a[j];
j--;
}
a[j+1]=k;
}
for(i=0;i<N;i++)
printf("%f\t",a[i]);
printf("\n");
}
冒泡排序法:
#include
"stdio.h"
#define
N
20
main()
{
int
i,j;
float
a[N],t;
printf("請輸入二十位數:\n");
for(i=0;i<N;i++)
scanf("%f",&a[i]);
for(i=0;i<N;i++)
for(j=i+1;j<N;j++)
if(a[i]>a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
for(i=0;i<N;i++)
printf("%f\t",a[i]);
printf("\n");
}
如果對你有幫助,請記得採納最佳答案,謝謝!
『柒』 關於C語言中實數的排序問題
一,排序演算法有問題
二,float型的默認時保留小數點六位,2.0和2.000000是不等的
三,精度問題
四,float型默認六位,多出的位數隨即產生
for(i=0;i<n;i++) /*使用選擇法排序*/
{
k=i;
for(j=i+1;j<n;j++)
{
if(y[j]<y[k])
{
k=j;
continue;
}
}
if(k!=i)
{
t=y[k];
y[k]=y[i];
y[i]=t;
}
}
『捌』 C語言輸入任意3個實數,然後按倒序和依次輸出怎麼編程
思路:利用輸入語句輸入3個實數,用輸出語句輸出正序,用輸出語句輸出反序
/*源程序如下:*/
#include<stdio.h>
int
main()
{
float x,y,z;/*定義3個整數*/
printf("請輸入一個3個實數:");
scanf("%f,%f,%f",
&x,&y,&z);/*輸入3個數中間用逗號分開*/
printf("依次輸出這三個數為:%f,%f,%f\n「,x,y,z);
printf("倒序輸出這三個數為:%f,%f,%f\n「,z,y,x)/*將輸出的三個數位置倒序即可*/
return
0;
}
VC++6.0測試如下
請輸入一個3個實數:1,2,3
依次輸出這三個數為:1.00,2.00,3.00
倒序輸出這三個數為:3.00,2.00,1.00
『玖』 4個數比較大小,結果從小到大排列,用C語言怎麼編
1、首先雙擊打開桌面上的C-Free5編程軟體。
『拾』 c語言輸入任意5個實數,按照由大到小排序輸出
用C語言實現如下功能:從鍵盤輸入5個實數,可以使用冒泡排序法把他們降序輸出。
#include 「stdio.h」
main()
{
int a[8];
int j,i;
for(i=0;i<5;i++)
{
printf(「請輸入第%d個數:\n」,i+1);
scanf(「%d」,&a[i]);
}
for(i=0;i<;j++)
for(i=0;i<5–j;i++)
{
if(a[i]>a[i+1])
a[i+1]=a[i];
}
for(i=0;i<5;i++)
printf("\n排序後的結果是:%d\n",a[i]);
return 0;
}