Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
Re:帮我看一下程序为什么总是Runtime ErrorIn Reply To:帮我看一下程序为什么总是Runtime Error Posted by:youngtrips at 2007-05-18 07:27:45 strcpy(temp,strings[i]); strcpy(strings[i],strings[j]); strcpy(strings[j],temp); 这三行,temp的长度是n,而strings[i]的长度会大于n.改为如下: #include <string.h> #include <iostream> using namespace std; #define MaxLines 100 #define MaxLen 50 int main() { // char strings[MaxLines][MaxLen]; char *temp; char ch; int *order; int n;//the length of the strings int m;//the number of the strings int i; int j; int k; int sum = 0; cin >>n>>m; char **strings=new char *[m]; order = new int[m]; temp = new char[n+1]; for (i = 0;i < m;i++) { strings[i]=new char [n+1]; cin >>strings[i]; } for (i = 0;i < m;i++) { for (j = 0;j <= n;j++) { ch = strings[i][j]; for (k = j+1;k <= n;k++) { if (ch > strings[i][k]) sum = sum + 1; } } order[i] = sum; sum = 0; } for (i=0;i<m;i++) { for (j=i+1;j<m;j++) { if (order[i] > order[j]) { strcpy(temp,strings[i]); strcpy(strings[i],strings[j]); strcpy(strings[j],temp); k = order[j]; order[j] = order[i]; order[i] = k; } if (order[i] == order[j]) continue; } } for (i = 0;i < m;i++) cout <<strings[i]<<endl; return 0; } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator