[英]Bubble Sort in C with zero
所以,我在C中第一次嘗試冒泡排序,我的代碼工作,除了事實,如果我輸入0作為輸入,排序使其他一切為0.我無法弄清楚我的代碼有什么問題。 謝謝。
/* Double-Click To Select Code */
#include<stdio.h>
void main()
{
int w,f,temp,j;
float arr[25];
printf("Enter the number of elements in the Array: ");
scanf("%d",&f);
printf("\nEnter the elements:\n\n");
for(w=0 ; w<f ; w++)
{
printf(" Array[%d] = ",w);
scanf("%f",&arr[w]);
}
for(w=0 ; w<f ; w++)
{
for(j=0 ; j<f-w-1 ; j++)
{
if(arr[j]>arr[j+1]) //Swapping Condition is Checked
{
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
printf("\nThe Sorted Array is:\n\n");
for(w=0 ; w<f ; w++)
{
printf(" %4f",arr[w]);
}
}
如果我輸入說,1.000 0.333 0
輸出將是:0.000 0.000 1.000
我測試過了。 只需將temp類型更改為float即可。 這是有效的;
#include<stdio.h>
void main()
{
int w,f,j;
float arr[25],temp;
printf("Enter the number of elements in the Array: ");
scanf("%d",&f);
printf("\nEnter the elements:\n\n");
for(w=0 ; w<f ; w++)
{
printf(" Array[%d] = ",w);
scanf("%f",&arr[w]);
}
for(w=0 ; w<f ; w++)
{
for(j=0 ; j<f-w-1 ; j++)
{
if(arr[j]>arr[j+1]) //Swapping Condition is Checked
{
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
printf("\nThe Sorted Array is:\n\n");
for(w=0 ; w<f ; w++)
{
printf(" %4f",arr[w]);
}
system("pause");
}
假設您正在嘗試對浮動進行排序,您需要temp作為浮點數:
int w,f,j;
float arr[25];
float temp;
int類型的臨時變量會截斷浮點值。 將它更改為float。在輸出0.000 0.000 1.000中,第一個或第二個零點是0.33截斷為零,第三個值是at
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.