创建一个整数数组并以空格结束

时间:2014-05-28 01:34:22

标签: c arrays

我正在编写一个程序,涉及从一个用户请求一个随机数量的整数的输入,这在用户返回空白后终止。然后将这些整数放入一个数组中,我将在后面对整数进行排序。该程序基本上如下运行:

Enter a list of integers:
> 5
> 0
> 3
>4

等...直到用户输入空白。程序然后对整数进行排序并打印出来。

我的代码片段是:

static int GetIntegerArray(int array[], int max)
{
   int n, value;

   n = 0;

   while(1) {
       printf("> ");
       value = GetInteger();
       if (value == "") break;
       if (n == max) Error("Too many input items for array");
       array[n] = value;
       n++;
   }
   return(n);
}

我得到错误“警告:指针和整数之间的比较”,其中值==“”

元素的数量是随机的,我将可能元素的最大数量设置为1000来解释这一点。

编辑:知道了!!完全忽略了空白必须被视为字符串。只是将其更改为最初将输入作为字符串读取,如果没有输入空格,则将输入转换为整数。谢谢!

1 个答案:

答案 0 :(得分:2)

在您的代码中,value被定义为int。您不能将int与字符串进行比较(空或不)。因此,关于编译器为什么抱怨的问题的严格答案是由于字符指针和int之间的类型不匹配。

您需要的帮助在GetInteger()函数的文档中。当没有提供用户输入时,该函数返回什么?比较'价值'到那个回报值,你就没事了。