2014年9月22日 星期一

三數比大小---[C++]

#include <iostream>
#include <stdlib.h>
using namespace std;
int main (){
    int x , y ,z;
    int a ,b ,c;
    cin>>x>>y>>z;
 
   if(x>y && y>z && x>z){
        x=x ; y=y; z=z;  
        }
 
   if(x>y && z>y && x>y){
        x=x; b=y; y=z; z=b;
        }
 
   if(y>x && x>z && y>z){
        a=x; x=y;y=a;z=z;
        }

   if(y>z && z>x && y>x){
        a=x; x=y; c=z; y=c; z=a;
        }
 
   if(z>x && x>y && z>y){
        a=x;b=y;c=z;
        x=z;
        y=a;
        z=b;  
        }            
   if(z>y && y>x && z>x){
        a=x;b=y;c=z;
        x=z;
        y=b;
        z=a;
        }
   
   cout<<endl<<"1:"<<x<<" "<<"2:"<<y<<" "<<"3:"<<z;
     
    system("pause");
    return main();
    }

PS: 此方法只解決 三數一定為不同數時~

2014年9月18日 星期四

VS2013 scan與 scan_f的方法[C code]。

VS2013 在使用 scanf 在編譯的時候會出現 "_CRT_SECURE_NO_WARNINGS" 這個錯誤。

有兩種解決方法:

1. 對該方案點選右鍵 -> 屬性 -> 組態屬性 -> C/C++ -> 前置處理器 的前置處理器定義

    進行編輯, 將_CRT_SECURE_NO_WARNINGS加入。就可以正常使用scanf了。

2. 方式就是改用 scanf_s

    下面有scanf 與 scanf_s兩種寫法的參考

    const int SIZE 1024;
    char *str = new char [SIZE];

    1. scanf
        scanf("%s",  str );
        printf("%s\n", str);
        即可

    2. scanf_s多了第三個參數,是放置該陣列大小,以免溢出,較scanf安全
     
        errno_t err;
        if ((err = scanf_s("%s", str  , SIZE)) == true)
            printf("%s\n", str);

就這樣。
其中,fopen也會有這樣的狀況,所以也是同樣方式,去解決。