当前位置:编程学习 > C/C++ >>

c语言问题

以下程序里的do while 为啥执行不了 # include<stdio.h> bool IsPrime(int val) { int i; for (i = 2;i < val;++i) { if (val%i == 0) break; } if (i == val) return true; else return false; } int main(void) { char ch; int val; do {printf("输入一个你想要的数字\n"); scanf("%d", &val); if (IsPrime(val)) //这一语句还不懂 printf("yes!\n"); else printf("no!\n"); printf("你想继续吗?Y/N"); scanf(" %c, &ch"); } while('y' == ch || 'Y' == ch); return 0; }
答案:应该是scanf(" %c", &ch);你的反双引号写错位置了。
if (IsPrime(val)) 等价于if(IsPrime(val) == true),判断输入的值val是否为质数,如果为质数的话,则打印yes。
其他:scanf(" %c, &ch");有问题,书写有问题,改成scanf(" %c“, &ch);就应该没有问题了 do  while 执行不了是因为  scanf(" %c, &ch"); 这句错了,你输入的字符无法存储到ch中,应改为scanf(" %c", &ch);
if (IsPrime(val))  使用了程序IsPrime(val),因为你的isprime(val)程序有返回值,且为 0 或者 1,所以,IsPrime(val)的返回值可以直接拿来作为判断真假的条件

上一个:C语言问题
下一个:C语言的老手,进来帮我构思下编程思路

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,