時間限制:1000 ms | 記憶體限制:65535 kb
難度:3
描述在乙個遙遠的國家,銀行為了更快更好的處理使用者的訂單,決定將一整串的數字按照一定的規則分隔開來,分隔規則如下:
1、實數的整數部分按照每三個數字用逗號分隔開(整數部分的高位有多餘的0時,需先將多餘的0過濾後,再進行數字分隔,如:0001234567 輸出結果為1,234,567.00)
2、小數部分保留兩位小數(四捨五入)
3、如果該數是負的,則在輸出時需用括號將分隔後的數字括起來,例如:-10005.1645的輸出結果為(10,005.16)
輸入:多組測試資料(以eof結尾),每行輸入乙個實數n(n的位數小於100)
輸出:輸出分隔後的結果
樣例輸入
0001234567
0.0000
-10005.1645
樣例輸出
1,234,567.00
0.00
(10,005.16)
//第一次發 ,**較亂 比較長,後續會改進.
//但是執行可以通過 借鑑別的大佬**,並改進。
// 注釋寫的挺詳細的
#include#includeint main()
a[len+1]='\0';
if(a[1]=='.')
}}
if(a[0]=='.')
} a[len+1]='\0';
a[0]='0';
len=strlen(a);
} //整數部分去除0 把0置為 *
for(i=0; i='1' &&a[i]<='9' )
break;
else else if(i+2>=len) else
for(k=i+3; k='0' && a[i]<='9' )
} for(i=0; i'9')
for(i=dian+2; i>start; i--)
}a[i+1]=a[i]; //如果進製 把整個陣列往後挪一位 999.999的情況 是1000.00
// 此時 a[start]沒有動
}if(a[start]>'9' && a[start+1]!='.') else if(a[start+1]!='.') else
} int sum=0;
int count=0;
for(i=0; i='0' && a[i]<='9')
sum++;
}} count=sum%3;
if(count>0) // 判斷在第幾位輸出 『,』
count=3-count;
for(i=0; iprintf("%c",a[i]);
count++;
}} for(j=i; j} if(fu==1)
printf("\n");
} return 0;
}
數字分隔(二)
時間限制 1000 ms 記憶體限制 65535 kb 難度 3 描述 在乙個遙遠的國家,銀行為了更快更好的處理使用者的訂單,決定將一整串的數字按照一定的規則分隔開來,分隔規則如下 1 實數的整數部分按照每三個數字用逗號分隔開 整數部分的高位有多餘的0時,需先將多餘的0過濾後,再進行數字分隔,如 0...
數字分隔(二)
時間限制 1000 ms 記憶體限制 65535 kb 難度 3 描述在乙個遙遠的國家,銀行為了更快更好的處理使用者的訂單,決定將一整串的數字按照一定的規則分隔開來,分隔規則如下 1 實數的整數部分按照每三個數字用逗號分隔開 整數部分的高位有多餘的0時,需先將多餘的0過濾後,再進行數字分隔,如 00...
NYOJ1092數字分隔(二)(水水)
參照了別人的思路。include include const int maxn 120 char s maxn int main if point strchr s,else pt len printf len pt d n len pt if len pt 3 處理進製 如果小數字大於等於3位 i...