當前位置:編程學習大全網 - 編程語言 - 用C++編寫壹個程序,鍵盤輸入若幹個整數,輸入字母為結束數據輸入,最後屏幕輸出最大值和最小值。

用C++編寫壹個程序,鍵盤輸入若幹個整數,輸入字母為結束數據輸入,最後屏幕輸出最大值和最小值。

其實我感覺3樓的scanf語句使用的好,不過我沒有驗證其是否可以滿足多種情況。下面是我根據樓主需求,利用getchar()函數寫的能處理負數的程序。

/*程序說明:回車鍵作為兩個數據之間的分隔點,輸入特殊字符後也必須回車鍵才能結束,getchar()函數必須通過換行符才能開始處理字符,支持正負數同時處理。*/

#include <iostream>

using namespace std;

bool check(char c)

{

char ch[]={'0','1','2','3','4','5','6','7','8','9','\n','-'};

for(int i=0; i<12; i++)

if( (c-ch[i]) == 0 )

return true;

return false;

}

int main()

{

double max = 0;

double min = 0;

int zero = (int)'0';

double temp = 0;

bool flag = false;

char c=getchar();

if(c == '\n' || !check(c))

{

cout<<"首次輸入數據無效!拜拜!"<<endl;

exit(0);

}

while (check(c))

{

if(c == '-')

flag = true;

else if(c != '\n')

temp = temp * 10 + (c-zero);

else

{

max = min = temp * (flag ? -1 : 1);

flag = false;

temp =0;

break;

}

c = getchar();

}

c = getchar();

while (check(c))

{

if(c == '-')

flag = true;

else if(c != '\n')

temp = temp * 10 + (c-zero);

else

{

temp *= (flag ? -1 :1);

flag = false;

if(temp > max)

max = temp;

else if(temp < min)

min = temp;

temp = 0;

}

c=getchar();

}

cout<<"max = "<<max<<endl;

cout<<"min = "<<min<<endl;

return 0;

}

  • 上一篇:h3c comware v7 有什麽好處
  • 下一篇:未來的交通會是什麽樣的?
  • copyright 2024編程學習大全網