C.程序为用户输入两种类型的号码,并给出输出用户输入多少个号码

c program for user to input two type of number and give output how many number user input

提问人:Cadefr6554 提问时间:10/29/2023 最后编辑:il_raffaCadefr6554 更新时间:10/30/2023 访问量:45

问:

用户需要输入2种输入3次,其中1号为合格,2号为失败...程序需要给出用户输入数字 1 和数字 2 的摘要

#include <stdio.h>
int main() {
    int result[3];
    int pass;
    int fail;

    for (int i = 1; i <= 3; i++) {
        printf("Enter Result (Pass=1 Fail=2) :");
        scanf("%d", &result[i]);
    }
    if (&result == 1) {
        pass = pass + 1;
    }
    if (&result == 2) {
        fail = fail + 1;
    }
    printf("%d", pass);
    printf("%d", fail);
}
c if 语句 while 循环

评论

0赞 Ted Lyngmo 10/29/2023
您正在解决什么具体问题?请出示您的代码。
0赞 Cadefr6554 10/29/2023
根据我的代码,我怎样才能得到多少通过和失败的结果?
1赞 Ted Lyngmo 10/29/2023
你认为有什么作用?此外,数组在 C 语言中是从零开始的。您只能访问 和 。&result == 1result[0]result[1]result[2]
0赞 Cadefr6554 10/29/2023
如何获取 &result 输入值并区分为通过或失败变量?

答:

1赞 Ted Lyngmo 10/29/2023 #1

一些问题:

  • &result == 1获取数组的地址,并尝试将其与整数进行比较。如果代码甚至编译,这将很少是真的。您想与 (或 ) 进行比较。result1result[index]12
  • 您读取循环中的所有输入,但在循环后只进行比较一次。
  • 数组是从零开始的。由于是 ,因此只允许访问 和 。resultint[3]result[0]result[1]result[2]
  • 两者都未初始化,并且包含不确定的值。读取 中必需的这些内容将使程序具有未定义的行为。将它们初始化为 。passfailpass = pass + 1;0

我建议不要使用数组,然后与循环和循环内部进行比较。12

例:

#include <stdio.h>

int main(void) {
    int result;
    int pass = 0;
    int fail = 0;

    for (int i = 0; i < 3; i++) {
        printf("Enter Result (Pass=1 Fail=2) :");

        if (scanf("%d", &result) != 1) {
            fputs("Erroneous input\n", stderr);
            return 1;
        }

        if (result == 1) {
            pass = pass + 1;
        } else if (result == 2) {
            fail = fail + 1;
        } else {
            printf("The invalid input %d will not be counted\n", result);
        }
    }

    printf("pass: %d\n", pass);
    printf("fail: %d\n", fail);
}

评论

0赞 Ted Lyngmo 10/29/2023
@Cadefr6554 不客气!很高兴它有所帮助!