怎么這樣寫也可以運(yùn)行
#include <stdio.h>
int main()
{
? ? double arr[]={1.78, 1.77, 1.82, 1.79, 1.85, 1.75, 1.86, 1.77, 1.81, 1.80};
? ? int i,j;
? ? printf("\n************排隊(duì)前*************\n");
? ? for(i=0;i<10;i++)
? ? {
? ? ? ? if(i != 9)? ?
? ? ? ? ? ? printf("%.2f, ", arr[i]);? //%.2f表示小數(shù)點(diǎn)后精確到兩位
? ? ? ? else
? ? ? ? ? ? printf("%.2f", arr[i]);? ? //%.2f表示小數(shù)點(diǎn)后精確到兩位
? ? }
? ? for(j=0; j<9; j++)
? ? {
? ? ? ? for(i=0;i<9-j;i++)
? ? ? ? {
? ? ? ? ? ? if( arr[i]>arr[i+1]? ? ?)? ? ? //當(dāng)前面的數(shù)比后面的數(shù)大時(shí)
? ? ? ? ? ? {
? ? ? ? ? ? ? ? double temp;? ? //定義臨時(shí)變量temp
? ? ? ? ? ? ? ? temp=arr[i];
? ? ? ? ? ? ? ? ? //將前面的數(shù)賦值給temp
? ? ? ? ? ? ? ? arr[i]=arr[i+1];
? ? ? ? ? ? ? ? ? ? //前后之?dāng)?shù)顛倒位置
? ? ? ? ? ? ? ? arr[i+1]=temp;
? ? ? ? ? ? ? ? ?//將較大的數(shù)放在后面? ??
? ? ? ? ? ? }? ? ? ? ? ? ? ? ?
? ? ? ? }? ? ? ? ? ? ? ??
? ? }
? ? printf("\n************排隊(duì)后*************\n");
? ? for(i=0;i<10;i++)
? ? {
? ? ? ? if(i != 9)? ?
? ? ? ? ? ? printf("%.2f, ", arr[i]);? //%.2f表示小數(shù)點(diǎn)后精確到兩位? ? ?
? ? ? ? else
? ? ? ? ? ? printf("%.2f", arr[i]);? ? //%.2f表示小數(shù)點(diǎn)后精確到兩位
? ? }
? ? return 0;? ??
}
2021-12-23
你那個(gè)for(j=0; j<9; j++);與for(j=8; j>=0; j--);作用一樣都是使循環(huán)執(zhí)行9次。
2019-10-18
回答有錯(cuò)請(qǐng)指正
2019-10-18
for(i=8; i>=0; i--)
??? {
??????? for(j=0;j<=i;j++)//這里第一次j<=8? @標(biāo)記
你那個(gè)j=0;j<9(其實(shí)就是j<=8) i<9-j 就是i<9-0(就是i<=8)跟那個(gè)標(biāo)記為就是等效的 ? 以此類推