c - 执行此程序时,char 函数会返回变量。我不知道为什么?
问题描述
在程序中,findnumber 函数获取数组元素和要通过 STDIN 搜索的值。我期望的输出是,如果该值等于数组中的任何一个元素,它会显示“是”或“否”。
#include<stdio.h>
#include<string.h>
char findNumber(int,int[],int);``
int main()
{
int n,a[10],s;
char c;
c=findNumber(n,a,s);
printf("%s",c);
return 0;
}
char findNumber(int arr_count, int arr[], int k)
{
int i=0,j,flag;
char y="YES";
char N="NO";
scanf("%d",&arr_count);
scanf("%d",&k);
for (j=0;j<arr_count;j++)
{
scanf("%d",&arr[j]);
}
while(i<arr_count)
{
if(arr[i]==k)
flag=1;
i++;
}
if(flag==1)
return y;
else
return N;
}
警告:从 'char *' 初始化 'char' 从指针生成整数而无需强制转换 [-Wint-conversion] char y="YES"; 警告:从 'char *' 初始化 'char' 使指针变成整数而无需强制转换 [-Wint-conversion] char N="NO";
解决方案
像"YES"
or这样的字符串常量"NO"
是一个字符数组,而不是单个字符,因此您不能将它们存储在char
.
您需要声明y
,n
因此char *
它们可以指向字符串常量并相应地更改函数的返回类型。
const char *findNumber(int arr_count, int arr[], int k)
{
const char *y="YES";
const char *N="NO";
...
推荐阅读
- r - "UseMethod("xml_add_child") 中的错误" test_dir 不起作用
- python - python - 如何在python中使用numpy和matplotlib绘制二维数据的最大和最小特征向量?
- c# - 连接字符串有时在 ServiceBusTrigger 中不可用
- linux - 使用Visual GDB将MSVC2010代码迁移到linux
- django - 如何将标签网址添加到 sitemap.xml?
- amazon-web-services - 使用 s3 作为数据库而不是 dynamodb
- javascript - Chrome 扩展程序:无法获取背景以将消息发送到内容脚本
- numpy - 避开障碍物时路径优化错误
- angularjs - 在自定义指令模板中使用 ng-if 导致无法将调整大小事件绑定到元素
- nginx - NGINX 反向代理和 swagger-ui.html