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

标签 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 以解决这个问题。

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

最佳答案

在您的代码中,值被定义为一个整数。您不能将 int 与字符串(是否为空)进行比较。因此,关于编译器为何提示的问题的严格答案是由于字符指针和 int 之间的类型不匹配。

您需要的帮助位于 GetInteger() 函数的文档中。当没有提供用户输入时,该函数返回什么?将“值”与该返回值进行比较,你会没事的。

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

相关文章:

java - 如何在对象数组上使用 for 循环并返回列出对象信息的字符串

javascript - 最简单的手卷排列组合

java - 如何随机组合 2 个数组的元素,同时确保在所有元素至少使用一次之前不会重复使用某个元素?

arrays - 如何在不使用额外数组来分割初始数组的情况下进行合并排序?

c - 如何以编程方式编辑路由表

arrays - 为什么在 char 数组的字符之间插入 "\000"个字符?

c# - 将 Python 数组转换为 C# 并返回值

c - 使用 C 的 u64 十进制到十六进制

c - 我想在 OpenCV 中将图像转换为铅笔素描

c - 返回两个指向动态数组的指针