陣列Runtime Error

Mars
題目內容如下
Input Format

一開始輸入一個整數 N(0<N<100000),股東的人數。
接下來一行有N 個整數,分別表示第 N[i],(0<N[i]<=10000) 個別股東的投資金額。
接下來一行有一個整數 K(0<K<N) ,表示撤資的人數。
接下來一行有K 個整數,分別是 K[i],(1<K[i]<=N) 撤資的股東的位置。
(K[i]的數字不會重複, 負責key資料的小姐因為老眼昏花 可能會不小心 按到錯誤的按鍵 請務必忽略掉不在範圍內的數字)
Output Format

整數一(換行)【留下來股東投資的縂金額】
整數二(空格)整數三(換行)【投資最多的股東的位置,投資的金額】
若出現相同投資金額的最大值,請輸出位置最小的那個。
Sample Input 1
10
2 4 10 8 6 7 13 15 15 12
5
1 3 10 7 2
Sample Output 1
51
8 15
當測資破萬的時候會顯示Runtime Error
請各位大大幫忙看看程式碼哪有問題
謝謝




#include"stdio.h"

int main(){
	int Shareholders,Money,Divestments,Divestments_Position,i;
	int N[10000],Max_Position,sum = 0,Max = 0;
	
	scanf("%d",&Shareholders);
	if(Shareholders<0 || Shareholders>=100000){
		printf("out of range");
	}
	for(i=0;i<Shareholders;i++){
		scanf("%d",&N[i]); 
	}
	scanf("%d",&Divestments);
	if(Divestments>0 && Divestments<=Shareholders){
		for(i=0;i<Divestments;i++){
		scanf("%d",&Divestments_Position);
		if(Divestments_Position==0){
			continue;
		}else{
			N[Divestments_Position-1] = 0;
			}
		}
	}else{
		printf("out of range");
	}
	for(i=0;i<Shareholders;i++){
		if(N[i]>Max){
		Max = N[i];
		Max_Position = i;
		}
		sum += N[i];
	}
	printf("%d\n",sum);
	printf("%d %d",Max_Position+1,Max);
	return 0;
}

Mars
已自行找到問題解決,謝謝
程式碼如下
#include"stdio.h"

int main(){
	int Shareholders,Money,Divestments,Divestments_Position,i;
	int N[100000],Max_Position,sum = 0,Max = 0;
	//輸入股東人數// 
	scanf("%d",&Shareholders);
	if(Shareholders<0 || Shareholders>=100000){
		printf("out of range");
		return 0;
	}
	//輸入股東投資金額// 
	for(i=0;i<Shareholders;i++){
		scanf("%d",&N[i]); 
	}
	//輸入撤資股東人數// 
	scanf("%d",&Divestments);
	if(Divestments>0 && Divestments<=Shareholders){
		for(i=0;i<Divestments;i++){
		scanf("%d",&Divestments_Position);
		//將撤資股東位置數字改0,若輸入為0則忽略// 
		if(N[Divestments_Position-1]<0){
			continue;
		}else{
			N[Divestments_Position-1] = 0;
		}
	}
	}else{
		printf("out of range");
		return 0;
	}
	//找出最大股東的位置及金額// 
	for(i=0;i<Shareholders;i++){
		if(N[i]>Max){
		Max = N[i];
		Max_Position = i;
		}
		sum += N[i];
	}
	//印出撤資後剩餘金額,最大股東位置及金額// 
	printf("%d\n",sum);
	printf("%d %d",Max_Position+1,Max);
	return 0;
}

回到頂部