今天写矩阵课设,遇见一个问题,已有scanf语句,却不能输入数字。举例如下,源码如下。
printf("欢迎来到矩阵的运算游戏选择\n");
printf("请选择\n");
printf("1.矩阵主对角线元素之和\n");
printf("2.矩阵所有元素的最大值\n");
int m; // m指选择的数字1或者2
scanf("%d",&m);
printf("输入矩阵维数N的大小 (N的范围限制在1到5,全闭区间)\n");
int n; //矩阵的维数
scanf("%d",&n);
printf("输入矩阵元素的数据类型 (3.int 4.double)\n");
printf("请输入所选数字3或4\n");
char a; //判断选的数据类型,后进行强制类型转换
scanf("%c",&a);
缓冲区:是内存中预留指定大小的存储空点对I/O的数据做临时存储,这部分预留的内存空间叫缓冲区。
修改:scanf后面加一个getchar()或者用fflush(stdin)清空缓冲区。