作者hongjonlin1 (nono)
看板Visual_Basic
標題[.NET] 亂數問題
時間Wed Jan 12 01:54:54 2011
請輸入專案類型(網站專案或者應用程式專案):Visual Studio C++
題目:以亂數產生50個三位數,並將所有奇數寫入Odd.txt中、
所有偶數寫入Even.txt中、所有質數寫入Prime.txt中。
程式碼:
#include "stdafx.h"
#include <iostream>
#include <math.h>
#include <stdlib.h>
#include <time.h>
using namespace std;
bool primeQ(int n);
int main()
{
srand(time(0)); //將time(0)丟入srand隨機因子,以達成隨機效果
int list[50];
cout << "50個數字為: \n";
for(int i=0;i<50;i++)
{
int number=rand()%1000; //必須放在裡面重複宣告,才會更新數字,%1000讓值永遠低於1000
list[i]=number;
cout << list[i] << " ";
if(i%10==0 && i>0) //這是排版
cout << endl;
}
ofstream output1("Even.txt",ios::out);
ofstream output2("Odd.txt",ios::out);
for(int i=0;i<50;i++)
{
if(list[i]%2==0) //若為偶數,丟到Even.txt
output1 << list[i] << "\n";
else
output2 << list[i] << "\n"; //若為奇數,丟到odd.txt
}
output1.close();
output2.close();
ofstream output3("Prime.txt",ios::out);
for(int i=0;i<50;i++)
{
if(prime(list[i])) //檢查,是質數就輸出
output3 << list[i] << "\n";
}
output3.close();
cout << "\n\n需要的資料已儲存";
}
bool prime(int number)
{
int i; //用傳進來的number去除,不能整除就是質數
for(i=2;i<=number;i++)
if(number%i==0) //若能整除就跳出
break;
if(i==number) //若從頭到尾都沒整除,撐到最後了(i=number)
return true; //它就是質數,回傳真
return false; //剩下的就回報假,不需加else,因為一個函式只要遇到一個return就會終止
}
問題:執行不出來,不知道錯在哪
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.221.84.175
推 Marty:C++版在樓上左轉....XD 01/12 08:13
推 horngsh:vb.net?? C++? 01/12 19:59