sách gpt4 ai đã đi

c - 程序适用于 Eclipse 但不适用于 PuTTy

In lại 作者:太空宇宙 更新时间:2023-11-04 07:20:47 25 4
mua khóa gpt4 Nike

我有这个程序可以在使用 C 的 MinGW 编译器的 Eclipse 上运行,但不能在 PuTTy 上运行。如果再次使用 Eclipse 和 MinGW 运行/编译它,它工作得很好。但是,在 PuTTy 中,输入难度后,它会直接跳转到分数输出(0/不管要问多少问题)。我的函数调用有什么问题,可能会导致它无法与所有 GCC 编译器一起正常工作?

/*
* quiz.c
*
* Created on: Feb 7, 2014
* Author: Paul
*/
#include
#include
#include
/* Generating random numbers:
* Include stdlib.h
* Include time.h
* RAND_MAX is the largest positive (defaults to 2.14 billion)
* the numbers generated are psuedo numbers, so it must be changed.
*
* Keep variable declarations at the top to squash Pendantic warnings.
* */
int genQuestion(int);
int answerQuestion(int);
int response(int);

int chính()
{
int counter;
int difficulty;
int qcounter;
int numCorrect;
int question;


/*
* Disable buffering, because it would otherwise not display the
* text. How annoying.
*/
setbuf(stdout, NULL);

while ((counter < 1) || (counter > 20))
{
printf("How many questions for the test (1-20)? ");
scanf("%d",&counter);
printf("\n");
}

while ((difficulty < 1) || (difficulty > 4))
{
printf("Select difficulty (1-4): ");
scanf("%d",&difficulty);
printf("\n");
}

while (qcounter < counter)
{
printf("Question %d: ", qcounter+1);
question = genQuestion(difficulty);
if (answerQuestion(question))
{
response(1);
numCorrect++;
}
khác
{
response(0);

printf("The correct answer was %d\n", question);
}

qcounter++;
}

printf("Your score was %d / %d\n", numCorrect, counter);

trả về 0;
}

int genQuestion(int diff)
{
int gMin, n1;
int gMax, n2;
int rndOperator;
int ans;

setbuf(stdout, NULL);
srand(time(NULL));
/* Set up the difficulties for minimum and maximum ranges.
*/

if (diff == 1)
{
gMin = 1;
gMax = 10;
}
else if (diff == 2)
{
gMin = 1;
gMax = 50;
}
else if (diff >= 3)
{
gMin = 100;
gMax = 200;
}

if (diff == 4)
{
n1 = rand() %gMax - gMin;
n2 = rand() %gMax - gMin;
}
khác
{
n1 = rand() %gMax + gMin;
n2 = rand() %gMax + gMin;
}

rndOperator = rand() %4 + 1;

/*
* Legend:
* 1 = +
* 2 = -
* 3 = *
* 4 = /
* Thus, if we divide, make sure the denominator "n2" isn't 0. If
* it is, set it to 1 instead. This is our safeguard.
*/

if (rndOperator == 1)
{
printf("%d + %d = ",n1,n2);
ans = n1 + n2;
}
else if (rndOperator == 2)
{
printf("%d - %d = ",n1,n2);
ans = n1 - n2;
}
else if (rndOperator == 3)
{
printf("%d * %d = ",n1,n2);
ans = n1 * n2;
}
else if (rndOperator == 4)
{
if (n2 == 0)
n2 = 1;

printf("%d / %d = ",n1,n2);
ans = n1 / n2;
}
return ans;
}

int answerQuestion(int answer)
{
int userAns;

setbuf(stdout, NULL);
scanf("%d",&userAns);

if (answer == userAns)
return 1;
khác
{
trả về 0;
}
}

int response(int amIRight)
{
int liner;

setbuf(stdout, NULL);
srand(time(NULL));
liner = rand() %3 + 1;
if(amIRight == 1)
{
if (liner == 1)
printf("Alrighty!\n");
else if (liner == 2)
printf("Well done!\n");
khác
printf("Great work!\n");
}
khác
{
if (liner == 1)
printf("Sorry Charlie!\n");
else if (liner == 2)
printf("No can do!\n");
khác
printf("Incorrect.\n");
}
trả về 0;
}

1 Câu trả lời

您正在使用未初始化的变量 counter、difficulty、qcounter 等。

 while ((counter < 1) || (counter > 20)) {
^Not initialized before entering the loop

您的程序调用了未定义的行为。什么事情都可能发生。它可能会在不同的编译器上给出不同的结果。

关于c - 程序适用于 Eclipse 但不适用于 PuTTy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21763779/

25 4 0
太空宇宙
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com