當前位置:首頁 » 編程語言 » c語言多輸報錯
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言多輸報錯

發布時間: 2023-04-13 09:10:05

c語言 只能輸入數字,輸入其他就提示輸入錯誤,請重新輸入怎麼弄

不知道宏禪你指的是輸入一個數蔽租塵字或字元還是一串
下面是輸入一個數字或字元的
#include
int
main()
{

char
c,c1;

while(1)

{

c=getchar();

c1=getchar();
//你打一個非數字時要按回車,回車本身也是一個字元,

用c1接收回車,以免打型緩一個字元輸出兩個error

if(c>='0'&&c<='9')

break;

printf("error!\n");

}
}

⑵ C語言編程,用for循環和scanf輸入數組,一點回車電腦就報錯(只能輸兩行),求高手指點。

樓上的人雖然雀並檔都很熱心,可惜他們的代碼要麼是都沒有經過測試就寫上來,要麼是牛頭不對馬嘴的亂貼代碼上來。
你沒貼代碼上來,從你頃亂說的情況看來,你的問題出現在scanf函數上,這個函數你一定要小心使用,舉個例子:
int a;
scanf("%d", &a); //後面一定是&a,不能是a,&a代表a的內存地址,scanf要求輸入數蔽余據是存入a的內存地址。
對於數組也一樣,比如一個10個元素的數組,你要從鍵盤輸入。你可以這樣:
int a[10];
int i;
for(i = 0; i < 10; ++i)
{
scanf("%d", &a[i]) //這里也可以寫a + i但是從風格上說,不推薦這種不直觀的風格
}

⑶ C語言中用指針的方法,輸入30個數字分成10行每行3個輸出報錯

  1. scanf()用來將整數輸殲頃入到數組元素中,第二個參數必須為數組元素的地址,因此應修氏察陸改為:scanf("%d",&a[i]);

  2. main()中的函數調用print(a,*p) ;第二個參數按你的函數定義必須傳遞的是指向int的指針,而不沒銀是int。因此,應修改為print(a,p);

  3. if(n/3==0)必須修改為if(n%3==0)

⑷ c語言中數據輸入錯誤了如何提示輸入錯誤並實現要求重新輸入

可以使用清理輸入流fflush(stdin);這個原因是因為錯誤輸入的內容會保留在輸入流,下一次判斷會從輸入流開始讀取,因為錯誤輸入的內容還在,所以直接判斷錯誤,繼續循環。

但有些編譯器並不支持清理輸入流。所以我們這時需要用手動輸入讓其清除。使用getchar();讓其接收錯誤的字元。但這樣就會變成這樣,如果輸入多個錯誤就會出現多個次數的循環;直至沒有錯誤輸入;這樣如果循環內容多,所消耗的資源也就多了。

所以可以使用while()來執行裡面的消除字元,但如果直接這樣while(getchar())就會進入無限循環,所以可以讓其接收一個終止條件,每次輸入完都會按回車,那就讓其接收' '換行符終止自己的循環。

(4)c語言多輸報錯擴展閱讀

C語言從鍵盤輸入數據

程序是人機交互的媒介,有輸出必然也有輸入。在C語言中,有多個函數可以從鍵盤獲得用戶輸入兄州:

scanf():和 printf() 類似,scanf() 可以輸入多種類型的數據。

getchar()、getche()、getch():這三個函數都用於輸入單個字元。簡沖

gets():獲取一行數據,並作為字元串處理。

scanf() 是最靈活、最復雜、最常用的輸入函數,但它不能完全取代其他函數,大家都要有所了解。scanf 是 scan format 的縮寫,意思是格式化掃描,也就是從鍵盤獲得用戶輸入。

gets() 會讀取用戶輸入的整行內容,包括空格。而 scanf() 遇到空格就結束羨咐蔽讀取,也就是說,使用 scanf() 讀取的字元串中永遠不會包含空格。

⑸ Visual Studio 2010寫C語言scanf輸入多項值就會出錯!輸完第一個回車便報錯。

問題的關鍵是scanf函數的運行機制:
當連續進行數值與字元的輸豎碰悉入時,一旦輸余乎入的不是數字或小數點,系統就將它解釋為字元,賦給了後面的字元變數。
程序中你用scanf( "%f ",&num);(盡管有printf一名,但沒有作用)後面跟著又scanf( "%c "吵如,&people);時,系統將你的輸入num後的回車(或空格)賦給了people。因此程序不能正確執行。
當你用%s輸入時,系統是將空格或回車解釋為前一項結束,後一項開始,因此可以正確執行程序。
要解決這個問題,你可將字元的輸入換成:
people=getche();
lab=getche();
應能解決。

⑹ c語言在輸入數據後就報錯崩潰了怎麼辦

#include <stdio.h>
#include <stdlib.h>
int main()
{
float c1;
scanf("c1=%f",c1);//注意這一行返升,有兩點可能會導致以上問題,輸入時必須按c1=%f格式進行輸入,其次,輸入後的值是要存談世宴儲到變數c1中的,含銀所以c1應改為&c1,即scanf("c1=%f",&c1);
printf("%f\n",c1);
system ("pause");//這個函數是調用命令行的,一般要在windows.h頭文件中申明一下
return 0;
}

⑺ c語言scanf函數判斷輸入的數超過多少時報錯

int scanf( const char *format, ... );