我想回答这个问题:
编写一个给定整数的函数n,通过main方法在哪里1 ?
n ? 9999打印是否为偶数,奇数或/和素数.在表格中写下你的答案:
2 is even and prime
我到目前为止编写的代码是:
/*Lab2 ex4 */
#include <stdio.h>
#include <math.h>
#include <stdbool.h>
bool IsPrime(int num)
{
int i;
for (i=2; i<num; i++)
{
if (num%i == 0)
{
return false;
}
}
return true;
}
bool IsEven(int num)
{
if (num%2 == 0)
{
return true;
}
else
{
return false;
}
}
char BoolToString(bool prime, bool even)
{
if (prime == true, even == true)
{
char* result = "is even and prime";
return result;
}
else if (prime == true, even == false)
{
char* result = "is odd and prime";
return result;
}
else if (prime == false, even == true)
{
char* result = "is even and not prime";
return result;
}
else if (prime == false, even == false)
{
char* result = "is odd and prime";
return result;
}
else
{
char* result = "error";
return result;
}
}
main()
{
printf("%d %c\n", 11, BoolToString(IsPrime(11), IsEven(11)));
}
Run Code Online (Sandbox Code Playgroud)
但我得到错误消息返回使得指针中的整数没有在BoolToString函数的返回语句上强制转换.
我不明白我在这里做错了什么?非常感谢.
(我大约两周前才开始使用C,如果我以一种可怕的方式做某事或者完全误解了某些东西是如何被使用的话,那么道歉.)
您必须使用char*返回类型来返回数据char*.
此外,const char*在这种情况下使用更好,因为字符串文字是不可修改的.
const char *BoolToString(bool prime, bool even)
{
if (prime == true && even == true)
{
return "is even and prime";
}
else if (prime == true && even == false)
{
return "is odd and prime";
}
else if (prime == false && even == true)
{
return "is even and not prime";
}
else if (prime == false && even == false)
{
return "is odd and prime";
}
else
{
return "error";
}
}
Run Code Online (Sandbox Code Playgroud)
您还必须使用%s而不是%cin printfin mainfunction.
| 归档时间: |
|
| 查看次数: |
140 次 |
| 最近记录: |