c - 从数组中输入几个数字,每个数字检查是否为整数

标签 c arrays integer

各位! 我希望有人能帮我用C语言弄清楚一些东西。 这是我在 IT 方面的第一个认真的作业,我没有经验,而且我正在学习电子学习,所以老师的帮助不是很可用。

我需要用 C 语言开发控制台应用程序。用户需要输入10个整数,如果插入的数字不是整数,需要输出错误并重新输入新的数字,直到10个整数都被插入。

万一我说这 10 个数字不能为 0(我这样做是为了确保我的 if-else 语句有效),但当我希望检查每个输入数字时,一切都不起作用是否为整数。

我怎样才能做对。

请帮忙

到目前为止我的代码是这样的:

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int i;
    float f;
    int numbers[10];

    for (i = 0; i < 10; i++)
    {
        scanf ("%d", &numbers[i]);
        if (numbers[i] != 0)
        {
            scanf ("*%d", &numbers[i]);
        }
        else
        {
            printf ("\nError!Entered number is't integer \n");
            printf ("\nPlease insert number again \n");
            scanf("%*d", &numbers[i]);
        }

    }

}

最佳答案

#include <stdio.h>

int main(void) {
    int i = 0;
    int val;
    char ch;
    int numbers[10];

    while(i < 10) {
        val = scanf("%d", numbers + i);  // read the integer into a[i]
        if(val != 1) {
            while((ch = getchar()) != '\n')  // discard the invalid input
                ;  // the null statement
            printf("Error! Entered number is not an integer.\n");
            printf("Please enter an integer again.\n");
            val = scanf("%d", numbers + i);
            continue;
        }
        ++i;
    }
    // process the numbers array
    return 0;
}

我又写了这一行

val = scanf("%d", numbers + i);

现在它可以按我的需要工作。太好了 - 非常感谢

关于c - 从数组中输入几个数字,每个数字检查是否为整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22539966/

相关文章:

代码无法初始化字符串数组

Delphi 属性读/写

c - 在嵌入式处理器之间使用哪种压缩(已知字节分布)

将包含科学记数法数字的字符串矩阵转换为单行数组

c - 指向地址时出错

javascript - 使用 slice、spread 和 map 改变数组的数组

sql - Postgres 从 jsonb 数组中获取值匹配的所有元素

java - 将JavaFX TextField的内容转换为Integer

swift - 核心数据 : Loading Integers out of a File

c - Hook fopen() 函数抛出段错误