最近大家都在反反复复纠结用EOF作为输入结束的问题,为了避免这种纠结演化成冬日里的悲伤情绪,计算机课代表呕心沥血,百度千度一万度,总算找到了答案。
大多数错误来自于一个误解,现纠正如下——
EOF不是一个字符或者数字什么的,而是scanf()函数的一个返回值。
所以scanf("%c",&c);再判断(c==EOF)的做法是无效的,因为scanf()根本不会把EOF当作一个字符写进c;
正确的判断条件应该写作以下形式
(scanf("%c",&c)==EOF)
可以看出EOF就是scanf()的返回值
下面提供用getchar()和scanf()写的两种...
大家都知道魔方阵问题,现要求输入一个奇数N,输出一个N*N的魔方阵。(魔法阵:各行、列、对角线加起来等于同一个数)
输入:3
输出:8 1 6
3 5 7
4 9 2
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int N=0;
while(N%2==0)
{
printf("please input:");
scanf("%d",&N);
}
int i, j, key;
int square[100][100] = {0};
i = ...