大民 10 發表於 August 21, 2007 檢舉 Share 發表於 August 21, 2007 int main(int argc, char *argv[]){ int r , a; srand(time(NULL)); r = rand() % 101; do { printf("請輸入介於 0 到 100 (含)的整數\n"); scanf ("%d",&a); if (a > r) printf ("太大了,共輸入了%d次\n"); else if (a < r) printf ("太小了,共輸入了%d次\n"); else if (a == r) { printf ("答對了,共輸入了%d次\n"); break; } }while(a != r); system("PAUSE"); return 0;}請各位幫個忙吧!!!!!! 鏈接文章 分享到其他網站
PichuChen 10 發表於 August 21, 2007 檢舉 Share 發表於 August 21, 2007 #include<stdio.h>int main(int argc, char *argv[]){int r , a,k=0;srand(time(NULL));r = rand() % 101;do{printf("請輸入介於 0 到 100 (含)的整數\n");scanf ("%d",&a);if (a > r)printf ("太大了,共輸入了%d次\n",++k);else if (a < r)printf ("太小了,共輸入了%d次\n",++k);else if (a == r)printf ("答對了,共輸入了%d次\n",++k);}while(a != r);system("PAUSE");return 0;} 鏈接文章 分享到其他網站
大民 10 發表於 August 21, 2007 作者 檢舉 Share 發表於 August 21, 2007 還有一個問題如果使用者輸入非數字 迴圈就亂掉了要怎麼辦?????? 鏈接文章 分享到其他網站
TerryW 10 發表於 August 21, 2007 檢舉 Share 發表於 August 21, 2007 這個要判斷就比較麻煩一點了迴圈會亂是因為如果輸入非數字會造成錯誤不過我只會用cin跟cout來改不會用scanf><#include<stdio.h>#include<time.h>#include<stdlib.h>#include<iostream>using namespace std;int main(int argc, char *argv[]){int r , a,k=0;srand(time(NULL));r = rand() % 101;char str[100];char ch;do{printf("請輸入介於 0 到 100 (含)的整數\n");//判斷部分開始cin>>ch;while(!isdigit(ch)) //isdigit是判斷是否為數字{ cin>>str; //清空資料流中的輸入 cout<<"輸入錯誤!請輸入介於 0 到 100 (含)的整數\n"; cin>>ch;}cin.putback(ch);cin>>a;//判斷部分結束 if (a > r)printf ("太大了,共輸入了%d次\n",++k);else if (a < r)printf ("太小了,共輸入了%d次\n",++k);else if (a == r)printf ("答對了,共輸入了%d次\n",++k);}while(a != r);system("PAUSE");return 0;}不知道對C的方法比較熟的人可不可以幫忙改寫@@不過這個方法並不能判斷輸入像"50abc"這樣的東西abc的部分會留到下一次迴圈才做判斷但是也只要再修改一下就行了(我懶了)另外我覺得++k可以提到if前面不用每次都打一個++k拉(純粹個人意見XD) 鏈接文章 分享到其他網站
電腦狂 10 發表於 August 22, 2007 檢舉 Share 發表於 August 22, 2007 試試用ASCII碼判斷吧不過如果用scanf像這樣寫scanf("%d",&a);a是變數,d就是輸入整數的意思這樣的話會自動忽略所有非數字的部份並以其為分隔EX:IN 50abc a=50IN 50abc2 a=50(第一次) a=2(第二次) 鏈接文章 分享到其他網站
TerryW 10 發表於 August 22, 2007 檢舉 Share 發表於 August 22, 2007 試試用ASCII碼判斷吧不過如果用scanf像這樣寫scanf("%d",&a);a是變數,d就是輸入整數的意思這樣的話會自動忽略所有非數字的部份並以其為分隔EX:IN 50abc a=50IN 50abc2 a=50(第一次) a=2(第二次)原來scanf是這樣那我前面說錯了XD 鏈接文章 分享到其他網站
Recommended Posts
請登入後來留意見
在登入之後,您才能留意見
立即登入