Creating an Integer Array and terminating with a blank
我正在编写一个程序,该程序涉及一次请求用户输入一个随机数量的整数,该输入在用户返回空白后终止。然后将这些整数放入一个数组中,稍后我将使用该数组对整数进行排序。该程序基本上运行如下:
1 2 3 4 5 | Enter a list of integers: > 5 > 0 > 3 >4 |
等...直到用户输入一个空白。然后程序对整数进行排序并打印出来。
我的代码片段是:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | 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); } |
我收到错误"警告:指针和整数之间的比较",其中 value =="
元素的数量是随机的,因此我将可能元素的最大数量设置为 1000。
编辑:知道了!!完全忽略了必须将空格读取为字符串。只需将其更改为最初将输入读取为字符串,如果没有输入空格,则将输入转换为整数。谢谢!
在您的代码中,值被定义为一个 int。您不能将 int 与字符串(是否为空)进行比较。因此,对您关于编译器为何抱怨的问题的严格回答是由于字符指针和 int 之间的类型不匹配。
您需要的帮助位于 GetInteger() 函数的文档中。当没有提供用户输入时,该函数返回什么?将"值"与该返回值进行比较,您会没事的。