×
解除綁定,重新設定系統帳號的密碼
您的系統帳號 ID:
您的系統帳號:
您的帳號暱稱:
設定新密碼:
設定新密碼:
×
請輸入要加入的「課程代碼」
請向開設課程的使用者索取「課程代碼」
分類題庫
解題動態
排行榜
討論區
競賽區
登入
註冊
發表新討論
#11931: 排版-code
nkavengertree
(LaG)
學校 : 不指定學校
編號 : 62501
×
傳送站內訊息
傳給:
主題:
內容:
來源 : [49.216.191.28]
最後登入時間 :
2021-11-21 03:06:49
d166.
反轉表
--
w11123
| From: [163.30.20.150] | 發表日期 : 2017-04-20 12:58
前面的程式碼沒有排版看起來很亂,這邊幫忙排了一下,請多指教。
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
const int MSIZE=55;
unsigned int m[MSIZE],mindex;
struct Node{
unsigned int number;
Node* next;
};
Node* head;
//利用stringstream來切割字串
void readin_m(string str1){
string tmp1;//拿來當作暫時存檔的字串
stringstream ss1;
ss1.str("");
ss1.clear();
ss1 << str1;//把字串放入
mindex = 0;//紀錄有幾個切割字串
while(
getline(ss1,tmp1,' ' )
){//利用' '來分割字串
stringstream ss2;
ss2.str("");
ss2.clear();
ss2 << tmp1;
ss2 >> m[++mindex];//string 轉 int
}
}
//尋找符合的位置,並利用linked list新增資料
void linkNode(int nb){
Node* newNode=new Node();//新增的資料點
newNode->number = nb;
Node* find = head;//尋找用的指標
while(m[nb]>0){
find = find->next;
if (find->number > nb)
m[nb]--;
}
newNode->next = find->next;
//新增
find->next = newNode;
newNode=0;
//釋放
delete newNode;
}
//輸出所有的資料
void show_node(){
Node* run;
run = head->next;
bool first=true;
//記得判斷是否空格!!
while(run != 0){
if (!first)cout << " ";
cout << run->number;
run = run->next;
first=false;
}
delete run;
cout << endl;
}
int main()
{
string input1;
//直接讀取
整行
,當遇到
"-1"
的時候結束
while(
getline(cin,input1)
&& input1 != "-1"){
readin_m(input1);//分析字串
head = new Node();
head->number = 0;
head->next = 0;
//
倒著
的順序方式來調整每一個的位置
for (
mindex=mindex; mindex>0; mindex--
){
linkNode(mindex);
}
//輸出結果
show_node();
}
return 0;
}
ZeroJudge Forum