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

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);
}

我得到一个错误“Warning:comparison between pointer and integer”,其中value=“”
元素的数量是随机的,我将最大可能元素的数量设置为1000来说明这一点。
编辑:明白了!!完全忽略了空白必须作为字符串读取。只需将其更改为最初将输入作为字符串读取,如果没有输入空格,则将输入转换为整数。谢谢!

最佳答案

在代码中,值被定义为In t。不能将int与字符串进行比较(是否为空)。所以对于编译器为什么抱怨的问题,严格的答案是字符指针和int之间的类型不匹配。
您需要的帮助在GetInteger()函数的文档中。当没有提供用户输入时,该函数返回什么?把‘value’和那个返回值比较,你就没事了。

关于c - 创建一个整数数组并以空白结尾,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23901529/

10-11 04:19
查看更多