廣告廣告
  加入我的最愛 設為首頁 風格修改
首頁 首尾
 手機版   訂閱   地圖  簡體 
您是第 8521 個閱讀者
 
發表文章 發表投票 回覆文章
  可列印版   加為IE收藏   收藏主題   上一主題 | 下一主題   
湯圓原
個人文章 個人相簿 個人日記 個人地圖
路人甲
級別: 路人甲 該用戶目前不上站
推文 x0 鮮花 x0
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片
推文 x0
[C/C++][求助] C程式怎麼做才能防呆
我已經想破頭,就是想不出來
雖然知道  用 do while 或設函數 可以做出,但怎麼做就是做不出來


以下程式要怎麼做防呆,還有輸入英文時會跑無限次,這要如何解決

防呆條件:僅輸入年或僅輸入年與月,沒完整輸入年月日,則出現請輸入正確的民國年.月.日
#include<stdio.h>
#include<stdlib.h>



int main()
{
    int y;  //出生年
    int m;  //出生月
    int d;  //出生日

   


    printf("請輸入出生年.月.日\n");
    scanf("%d%d%d" ,&y,&m,&d);

    if(y%12==1){                   //出生年除以12的餘數等於一的生肖為鼠
        printf("生肖:鼠\n");
    }
    else if(y%12==2){
        printf("生肖:牛\n");
    }
    else if(y%12==3){
        printf("生肖:虎\n");
    }
    else if(y%12==4){
        printf("生肖:兔\n");
    }
    else if(y%12==5){
        printf("生肖:龍\n");
    }
    else if(y%12==6){
        printf("生肖:蛇\n");
    }
    else if( ..

訪客只能看到部份內容,免費 加入會員 或由臉書 Google 可以看到全部內容




獻花 x0 回到頂端 [樓 主] From:台灣中華電信 | Posted:2010-12-09 21:44 |
totsi
數位造型
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x0 鮮花 x53
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

從程式碼看來,只會跑一次而,不會跑很多次。
至於防呆,建議是使用自己能判定的欄位來取值。

用位置的話,也要確定欄位是沒輸入,還是不輸入。
沒輸入:19881231
不輸入:1231

最保險就是長度跟範圍檢查,例如
年:2-4碼,且不會小於等於零,或者....
月:1-2碼,且也不會小於等於零,或者....
日:1-2碼,且也不應該小於等於零,或者....

大概方式如上,再者,上述條件還有所不足,所以僅供參考用。


恩...
獻花 x0 回到頂端 [1 樓] From:台灣中華電信 | Posted:2010-12-13 12:44 |
ronlain
數位造型
個人文章 個人相簿 個人日記 個人地圖
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x1 鮮花 x11
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

以程式看來 生肖是用國曆計算
你的code 數字小於0都出問題

防呆
只要檢查是否為數字 還有範圍即可

教你一個小技巧
用一個char 矩陣 裡面存好你要的生肖
y%12就會對到矩陣的0~11 你的code就會很精簡也很簡單

星座也可以用類似作法 讓你自己想


獻花 x0 回到頂端 [2 樓] From:台固媒體 | Posted:2010-12-13 22:58 |
XDglory 手機
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x0 鮮花 x8
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

希望可以藉此一問...

那假如使用者是輸入英文呢?


獻花 x0 回到頂端 [3 樓] From:台灣教育部 | Posted:2011-02-19 00:12 |
totsi
數位造型
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x0 鮮花 x53
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

回樓上
就一樣把英文加入成需判斷的字串就可以了
作法相同


恩...
獻花 x0 回到頂端 [4 樓] From:台灣中華電信 | Posted:2011-02-21 08:21 |

首頁  發表文章 發表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.071778 second(s),query:16 Gzip disabled
本站由 瀛睿律師事務所 擔任常年法律顧問 | 免責聲明 | 本網站已依台灣網站內容分級規定處理 | 連絡我們 | 訪客留言