在程序中,findnumber函数获取数组元素和要通过STDIN搜索的值。我期望的输出是,如果该值等于数组中的任何元素,则显示YES或NO。
#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”;
答案 0 :(得分:1)
像"YES"
或"NO"
这样的字符串常量是一个字符数组,而不是单个字符,因此您不能将它们存储在char
中。
您需要将y
和n
声明为char *
,以便它们可以指向字符串常量并相应地更改函数的返回类型。
const char *findNumber(int arr_count, int arr[], int k)
{
const char *y="YES";
const char *N="NO";
...