1. c語言關於while (scanf("%d", &m) != EOF)的疑問
這得看scanf的定義:
int scanf(const char *format, ...)
返回值:如果成功,該函數返回成功匹配和賦值的個數。如果到達文件末尾或發生讀錯誤,則返回 EOF
所以,如果你在終端上輸入數據,而不是從文件,那麼基本上不會發生讀錯誤,也就無從讀取到EOF了。
如果你是在windows系統上執行此程序,償試輸入:Ctrl+Z,這是微軟系統上輸入EOF的方法。
或者,改為由文件輸入數據。
另外,你用了getchar();也要注意輸入緩沖區的問題。因為windows(或說DOS)系統上,輸入一個回車,實際上是輸入的0Dh ,0AH兩個字元,這就導致,一個回車執行了2次循環,所以,在執行一次getchar()之後,執行一下清除緩沖區的操作
2. 洛谷P1154 奶牛分廄C語言代碼怎麼寫
假如對於某個k,兩個編號分別為a和b的奶牛分到了同一個廄中
即a % k = 0, b % k = 0,那麼 |a - b| % k = 0
如此可以預先遍歷所有的a和b,計算它們的差值,並用數組vis標記
只要vis中沒有出現k的倍數,即不存在模k同餘的兩個編號,該k即滿足要求
接下來就從最小值n開始逐一判斷,第一個滿足要求的k即為所求
C語言代碼如下:
附源碼:
#include <stdio.h>
#include <stdlib.h>
#define K 1000001
int a[5000]; // 所有奶牛編號
int vis[K];
int main() {
int n, i, j, d, k;
scanf("%d", &n);
for (i = 0; i < n; i++)
scanf("%d", &a[i]);
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
d = abs(a[i] - a[j]); // d % k 一定為0
vis[d] = 1; // 標記所有可能有沖突的編號差
}
}
for (k = n; k < K; k++) { // 從最小的n開始遍歷所有可能的k
if (vis[k] == 0) { // k和k的倍數都未被標記,即說明谷廄沒有沖突
d = 1; // 標記
for (i = k * 2; i < K; i += k)
if (vis[i] == 1) {
d = 0;
break;
}
if (d == 1) { // 找到最小的k
printf("%d ", k);
break;
}
}
}
return 0;
}
3. 考拉斯猜想(冰雹猜想)用c語言完成
輸入語句有誤,應為
scanf("%d", &num);
4. 為何洛谷中絕大多數題解都是用的c++,甚至有的沒有c題解我學的C,該怎麼解決
我建議你該學C++,因為C++有一個優點是可移植性強,你已有C語言的基礎學起來會快些
5. 在C語言中什麼叫做腳骨定理
是「角谷猜想」
也叫冰雹猜想
冰雹猜想 [1] 是指:一個自然數x,如果是奇數就乘以3再加1,如果是偶數就析出偶數因數2ⁿ,這樣經過若干個次數,最終回到1。 [2]
無論這個過程中的數值如何龐大,就像瀑布一樣迅速墜落。而其他的數字即使不是如此,在經過若干次的變換之後也必然會到純偶數:16-8-4-2-1的循環。據日本和美國的數學家攻關研究,在小於7*10^11的所有的自然數,都符合這個規律。
6. 大一學c語言還不到兩個月,能做洛谷的題目嗎
頭文件可以查的,加油吧
7. 有關洛谷P1317的C語言 stdio.h解法
這個程序員抖了解,再看看書就是。
8. C語言編程題(字元串的問題)洛谷的
鍵盤輸入fgets(buf,n,stdin)
功能,從鍵盤輸入n-1個字元的字元串,所以讀13個字元,n要設置為14,
查下fgets函數的原型定義就知道了
9. 洛谷社區和C語言有關系嗎
是有關系的。
上面有很多C語言的題,可以做,然後每道題都會有前輩列出他們的代碼和思路講解。
還有的時候也會搞一些活動什麼的。
如果你能做得下去題,那就是個挺好的社區。
:)
10. C語言初學洛谷DNA題 求助!感謝!
#include<stdio.h>
voidmain(){
inta,b,i,j,k,m;
scanf("%d%d",&a,&b);
if(a<3||a>39||a%2==0||b<1||b>20)
printf("Inputerror!");
else
{
for(i=1;i<=b;i++)
{
for(j=-a/2;j<=a/2;j++)
{
m=j;if(m<0)m=-m;
for(k=1;k<=a/2+m+1;k++)
(k==a/2-m+1||k==a/2+m+1)?printf("x"):printf("");
printf(" ");
}
}
}
}