首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

求 c 对 scanf 输入稽查判断

2013-10-06 
求 c 对 scanf 输入检查判断/*输入的整数是奇数还是偶数呢*/#include stdio.hint main(void){int cont

求 c 对 scanf 输入检查判断
/*
输入的整数是奇数还是偶数呢
*/

#include <stdio.h>
int main(void)
{
int cont; /* 要继续嗎 */
do {
int *no=(int *)malloc(10); // 原句是 int no;
printf("请输入一个整数: ");
if(scanf("%[a-z]d",&no)) // 原句是 scanf("%d",&no);
puts("error");
else
if (no%2)
puts("这个整数是奇数。");
else
puts("这个整数是偶数。");
printf("要重复一次吗? 【yes...0 / no ... 9]】:");
scanf("%d",&cont);
} while (cont == 0);
return (0);
}

执行出错在,if(no%2)…
cannot use pointers here.

另请问以下一句是什么意思呢?
int *no=(int *)malloc(10);

求解题,谢.
PS. 上述代码,用原句執行,
如输入非数字,则会出错。
[解决办法]


#include <stdio.h>
#include <malloc.h>
int main(void)
{
int cont; /* 要继续嗎 */
do {
int *no=(int *)malloc(10); // 原句是 int no;
printf("请输入一个整数: ");
if(scanf("%[a-z]d",&no)) // 原句是 scanf("%d",&no);
puts("error");
else
if ((*no) % 2)
puts("这个整数是奇数。");
else
puts("这个整数是偶数。");
printf("要重复一次吗? 【yes...0 / no ... 9]】:");
scanf("%d",&cont);
} while (cont == 0);
return (0);
}

[解决办法]
1  no你定义的是int型的指针类型,不能直接用地址去计算,
应该是: 

(*no) % 2


2 malloc 给 no分配空间,
不过你写的有问题,我猜想应该是

int *no=(int *)malloc(sizeof(int));

[解决办法]
if((*no)&1) printf("odd\n")
[解决办法]
scanf("%[a-z]d",&no)
这是什么意思??

各种意义上的错
[解决办法]
请判断scanf的返回值!
%[a-z]d
输入由a,b,c,...,z组成的字符串后跟d?自相矛盾。

热点排行