gpt4 book ai didi

c - 如何避免多次提示用户输入?

转载 作者:太空宇宙 更新时间:2023-11-03 23:45:57 24 4
gpt4 key购买 nike

我正在创建一个简单的程序,它要求用户在一个函数 mark 中输入,然后将输入值传递给第二个函数 characters 以进行验证。

#include <stdio.h>
void marks(float *mark1, float *mark2, float *mark3);
void characters(float mark1, mark2, float mark3);

void marks(float *mark1, float *mark2, float *mark3) {

float firstMark, secMark, thirdMark;

printf("Enter mark1, mark2, and mark3: ");
scanf("%f,%f,%f", mark1, mark2, mark3);

while (mark1 < 0 || mark2 < 0 || mark3 < 0) {

printf("Error, marks can't be less than zero \n");
printf("Enter mark1, mark2, and mark3: ");
scanf("%f,%f,%f", mark1, mark2, mark3);

firstMark = *mark1;
secMark = *mark2;
thirdMark = *mark3;
}
}

void characters(float mark1, float mark2, float mark3) {

marks(&mark1, &mark2, &mark3);

if (mark1 < 50 || mark2 < 50 || mark3 < 50) {
printf("Really Bad! You have failed. \n");
}
else if (mark1 > 50 && mark2 > 50 && mark3 > 50) {

printf("You have passed. \n");
}
else {
printf("ERROR! \n");
}
}

int main(void) {

int i;
float mark1, mark2, mark3;

printf("Grade list \n");

marks(&mark1, &mark2, &mark3);
characters(mark1, mark2, mark3);
}

问题出在 characters 中,当我调用 mark 时它要求用户输入,但我只希望程序要求用户在 main 中输入标记

如何在程序不要求数据输入的情况下调用 characters 中的 marks,以便我可以使用它的参数来计算值?

最佳答案

如果您不想要求用户输入两次,请删除对 marks 的第二次调用。 main通过调用marks收集了characters的输入,并通过三个参数传递;无需第二次调用。

这将解决您的问题:

void characters(float mark1, float mark2, float mark3) {
// No second call to marks
if (mark1 < 50 || mark2 < 50 || mark3 < 50) {
...
}
...
}

关于c - 如何避免多次提示用户输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33704347/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com