C 閏年 我輸入除了數字以外的字元會死迴圈怎麼辦

時間 2025-01-14 04:25:19

1樓:黃曉輝

這是因為scanf是從快取中讀取資料的。如果判斷不是數字就會陷入寫迴圈。所以你必須清理快取並提示使用者重新輸入。

我有個好辦法。

int a; /定義乙個int型變數a

while(!scanf("%d",&a)) 判斷輸入的是否是數字,如果是數字scanf會返回1,否則返回0

fflush(stdin); 清理快取。

printf("你輸入的不是數字,請重新輸入:");

2樓:網友

輸入資料型別與cin>>指定的型別不一致。

比如你這裡定義乙個整型變數,但程式啟動後卻塞給它字元型的資料)會導致cin呼叫 矢敗,cin不再從緩衝區讀取資料 ,後面所有試圖用cin賦值的變數都會保留原值。

所以當你輸入的不是整數時就會是的之後a一直保留上次輸入正確時的數值,就進入了死迴圈。

3樓:網友

我給的**如下,已測試:

#include

using namespace std;

void main()

int a;

int b=1;

cout<<"公曆年份是整百數的,必須是400的倍數的才是閏年,不是400的倍數的,雖然是100的倍數,也是平年,這就是通常所說的:四年一閏,百年不閏,四百年再閏。 例如,2000年是閏年,1900年則是平年。

cout<<"n這個數能被4整除,不能被100整除 並且 能被400整除\t\t所以 "else{cout<<"n這個數不能被四整除 或者 它能被100整除 或者它不能被400整除\t\t所以 "cout<<"n輸入 0 則是退出";

cout<<"請輸入乙個年份 來判斷是否是閏年:";

system("pause");

4樓:逐夢兮樂

你就加個判斷語句嘛,判斷輸入的是否是數字,如果不是就重新輸入,就不會進入死迴圈了。

5樓:神戀幽星

在判斷閏年結束後 加個 b=2; 退出迴圈…… 不然執行到這裡 判斷不是閏年 然後又重新判斷就死迴圈了。

6樓:庚半楣

加個while給個數字判斷範圍。

閏年是怎麼定義的,有連續4年是閏年的嗎?

7樓:及千風

含義:閏年是為了彌補因人為曆法規定造成的年度天數與地球實際公轉週期的時間差而設立的。補上時間差的年份,即有閏日的年份為閏年。

公曆閏年判定遵循的規律為: 四年一閏,百年不閏,四百年再閏。

公曆閏年的簡單計算方法(符合以下條件之一的年份即為閏年)1。能被4整除而不能被100整除。(如2100年就不是閏年)2。能被400整除。

能被100整除但是不能被400整除的,不是閏年。)詳情如下:

閏年(leap year),指在公曆(格里曆)或夏曆中有閏日的年份,以及在中國舊曆農曆中有閏月的年份。

地球繞太陽執行週期為365天5小時48分46秒(合天),即一迴歸年(tropical year)。公曆的平年只有365日,比迴歸年短約 日,每四年累積約一天,把這一天加於2月末(2月29日),使當年的歷年長度為366日,這一年就為閏年。 按照每四年乙個閏年計算,平均每年就要多算出天,經過四百年就會多出大約3天來,因此,每四百年中要減少三個閏年。

所以規定公曆年份是整百數的,必須是400的倍數才是閏年,不是400的倍數的就是平年。比如,1700年、1800年和1900年為平年,2000年為閏年。閏年的計算,歸結起來就是通常說的:

四年一閏;百年不閏,四百年再閏。

在連續的21年中,最多有( )個閏年,最少有( )個閏年。

8樓:網友

在連續的21年中,最多有( 6)個閏年,最少有( 4 )個閏年。

連頭連尾都是閏年就是6個比如2000年到2021年。

去掉不閏的世紀年,又不連頭尾,比如1898年到1919年,就是4個閏年:1904,1908,1912,1916.

9樓:孟珧

當第一年就是閏年的時候,最多的會有1+(21-1)÷4=6個閏年。

最少的時候會有:4個閏年。

c++輸入字元出現死迴圈

10樓:網友

3樓是對的,解釋一下。是說如果輸入錯誤,就返回true。而就是修復輸入流。

是清空輸入流。因為如果輸入錯誤,錯誤的資訊依然在輸入流中,沒有被取走。這樣,使得迴圈每次都是輸入的錯誤資訊。

把輸入流清空一下,當前的輸入流就為空了,再次輸入如果正確,就輸入進去,如果還是錯誤,就再次把當前輸入流清空。

11樓:網友

那在你輸入變數值之前應該看好你所定義的變數是什麼型別。

2005年之後連續的四個閏年是什麼

12樓:網友

2008,2012,2016,2020 可以被4整除的都是閏年。

13樓:姓宛秋功世

正確的說法是:四年一閏。公元年數能被4除盡就是閏年。但又有規定逢百年的最後一年,不設閏年。如2100

2300等。這樣「任意四個連續的年份中,一定有一年是閏年」就是錯的。

14樓:happy玲

2008 2012 2016 2020

能被4正除的。

但是像1600 1700 1800這樣的要能被400整除才是閏年哦。

用c語言編寫乙個程式,從鍵盤輸入乙個年份,判斷該年是否為閏年,並輸出相應的文字資訊閏年

15樓:天涯之城

int year

printf("請輸入乙個年份");

scanf("%d",&year);

print("閏年");

elseprintf("不是閏年")

閏年是「能被4整除但不能被100整除」,或者「能被400整除」。

如1900 可被4整除,但可以被100整除,但又不能被400整除,所以不是閏年。

如2000 可被4整除,但可以被100整除,然而能被400整除,所以是閏年。

2007年之後連續的3個閏年

16樓:網友

閏年演算法有三個規定:

1.被4整除的是閏年,但有例外情況,見規定2。

2.被100整除的不是閏年(比如1900年不是閏年),但有例外情況,見規定3。

3.能被四百整除的是閏年(比如2000年是閏年)。

順便說,天文學計算出每年時長應是:天。

只考慮規定一1,計算的每年時長就是天。

規定2修正規定1後,計算的每年時長就是天。

再經規定2修正後,計算的每年時長就是天。

當然即使這樣修正後每3300年左右仍會多出一天。

也許以後會有規定4再修正3(比如規定能被3200年整除的不是閏年),但那是很久以後的事情了。

「連續4年中,一定有乙個閏年。」這句話對嗎?為什麼?

17樓:網友

嚴格說來並不一定。

一般的年份可被四整除就是閏年,但是整百年份需要能被四百整除才是閏年。

例如1696可被四整除,但是1700不能被400整除。因此1696年是閏年,1700年不是,而1704年又是,這中間連續8年並沒有閏年。

18樓:網友

對啊。四年一次閏年。

年份可以被四整除就是閏年。

除整零的年份外(例如2000年)

c語言中,輸入一串字元,然後分別存放輸出數字,字母,其他,怎麼用函式表示啊

輸入一串字元,然後分別存放輸出數字,字母,其他 include define n 80 int main void void mystring char str,char ch,char num,char other void output char char s printf n 字母 for i...

用C語言,輸入一行數字字元,請用陣列元素作為計數器來統計每個

include int main void int p count int i for c 0 c 好吧我承認用c作為變數名就是為了看見c for i 0 i 10 i include int main 輸入一行字元 內包括數字字元 用陣列元素作為計數器來統計每個數字字元的個數 編寫一個程式,輸入一...

我要玩刺客信條,除了顯示卡以外,我該換個什麼CPU,記憶體要多大,這兩樣大概要多少錢

cpu intel core2 duo e7200 760實際買cpu比這個 便宜50 70元左右記憶體換成2g的。比如 威剛2g ddr2 800g 遊戲威龍 150 玩刺客信條特效全關記憶體1g,處理器3.g再配個7300gt勉強能跑.如果你要配9800的顯示卡那cpu至少amd5000 記憶體...