English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
所有分類

我們要做一作業....是比較大小的
題目為
輸入N個數字之後
輸入-999為跳出
並把之前的數字由大到小排好
我問過我同學了
他說用FOR巢狀回圈
但是我想破頭想不出來了
只好問各位高手了^^"

2006-11-12 08:29:41 · 4 個解答 · 發問者 小小胖 1 in 電腦與網際網路 程式設計

4 個解答

#include
#include
using namespace std;
int main(void)
{
 int n,number[100],i,temp;
 cout << endl << "請輸入有幾個數要比大小 : ";
 cin >> n;
 cout << endl << "接著輸入每個數的數值 : " << endl;
 for(i=0;i  {
  cin >> number[i];
 }
 for(int j=0;j  {
  for(int k=j+1;k   {
   if(number[j]>number[k])
   {
    temp=number[j];
    number[j]=number[k];
    number[k]=temp;
    break;
   }
  }
 }
 cout << "最大值 : " << number[n-1] << endl;
 cout << "最小值 : " << number[0] << endl;
 system("PAUSE");
 return 0;
}

我是用Visual C++ 6.0寫的
參考看看吧, 有問題或錯誤儘管問~ 

2006-11-12 17:23:06 補充:
抱歉 ... ... 上面這個程式碼我發現有錯改過之後 , 我把正確的程式碼我放在這裡https://web.thu.edu.tw/s952852/solve/answer_7.txt

2006-11-12 12:04:14 · answer #1 · answered by Tony Pai 5 · 0 0

//Power by Microsoft Visual Studio 2005//可以使用 Dev-C++ 編譯此程式#include#include#define LENGTH 1000using namespace std;int main(int argc,char **argv){ //=====START=====// void resort(int *NUM,int LEN); int i,j,END=-999,input,number[LENGTH]={0}; cout<<"可允許輸入 "<>input;  if(input!=END){   number[i]=input;  }else{   break;  } } resort(number,i); cout<<"排序"; for(j=0;j*(NUM+j)){    temp=*(NUM+i);    *(NUM+i)=*(NUM+j);    *(NUM+j)=temp;   }  } }}

2006-11-12 13:36:02 · answer #2 · answered by Big_John-tw 7 · 0 0

struct SNumItem
{
int num;
SNumItem* pNext;
};// struct SNumItem

class CListNum
{
SNumItem m_head;
void cleanup( void);
void insertNum( INT num);
public:
CListNum( void);
~CListNum( void);
bool input( void);
void printOut( void);
};// class CListNum

CListNum::CListNum( void)
{
m_head.pNext= NULL;
}// CListNum()

CListNum::~CListNum( void)
{
cleanup();
}// ~CListNum()

void CListNum::cleanup( void)
{
SNumItem* pItem;
SNumItem* pDelete;

for( pItem= m_head->Next; pItem!= NULL;)
{
pDelete= pItem;
pItem= pItem->pNext;
delete pDelete;
}// for pItem
}// cleanup()

void CListNum::insertNum( INT num)
{
SNumItem* pItem;
SNumItem* pInsert;
bool bEnd;

pInsert= new SNumItem;
if( pInsert!= NULL)
{
pInert->num= num;
pInsert->pNext= NULL;
bEnd= false;
for( pItem= &m_head; !bEnd&& pItem->pNext!= NULL;)
{
if( num> pItem->pNext->num)
{
pInsert->pNext= pItem->pNext;
pItem->pNext= pInsert;
bEnd= true;
}// if num
else pItem= pItem->pNext;
}// for pItem
if( !bEnd) pItem->pNext= pInsert;
}// if pInsert
}// insertNum()

bool CListNum::input( void)
{
bool bRst;
int num;

printf( "input number: ");
scanf( "%d", &num);
bRst= num!= -999;
if( bRst) insert( num);
return( bRst);
}// input()

void CListNum::printOut( void)
{
SNumItem* pItem;
for( pItem= m_head->pNext; pItem!= NULL; pItem= pItem->pNext)
printf( "%d\n", pItem->num);
}// printOut

int main( void)
{
CListNum listNum;
while( listNum.input());
listNum.printOut();
getch();
}// int main()

1. 此程式未經 debug
2. 若不是練習的程式,排序部分應用 STL 會比較好.
3. 此片段僅拱參考.作業還是自己想比較好.

2006-11-12 09:40:22 · answer #3 · answered by Jackie 1 · 0 0

這個問題應該已經出現 n 次了..你可以朝 "sort" , "排序" 這些字眼下去找

2006-11-12 08:59:36 · answer #4 · answered by 鳳琳 5 · 0 0

fedest.com, questions and answers