这里有一点C的帮助

时间:2017-09-21 11:40:49

标签: c

我是编程新手,我正在努力学习C,因为我喜欢它并且它非常容易。我的第一个问题是GUI如何制作,如按钮和所有东西?

我的代码有点帮助。 我试图制作一个更高 - 更低的游戏,它会产生1到100之间的随机数,你会猜测这个数字是高于50还是低于50。 这是代码:

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
#include <unistd.h>
#include <time.h>

int score = 0;
char veceManje[6];

void ocistiEkran()
{
    system("cls");
    printf("~Ekran ociscen~\n");
}

void randomBroj()
{
    int rand1;
    rand1 = rand() % 100 + 1;
    printf("");
    printf("Novi broj je generisan, probajte pogoditi da li je veci ili manji od 50.\n");
    printf("Upisite 'vece' ako mislite da je veci, a 'manje' ako mislite da je manji.\n");
}

void restartIgre()
{
    score = 0;
    ocistiEkran();
    printf("Restartovali ste igricu. Sada vam je score 0.\n");
    randomBroj();
}



main()
{
    randomBroj();
    scanf(" %s", &veceManje);
    if(veceManje == "vece")
    {
        if(rand1 < 50)
        {
            printf("Pogrijesili ste, broj %d je manji od 50.\n", rand1);
            score = 0;
            randomBroj();
        }
        else
        {
            printf("Odlicno! Broj %d je veci od 50.\n", rand1);
            score ++;
            randomBroj();
        }
    }
    if(veceManje == "manje")
    {
        if(rand1 > 50)
        {
            printf("Pogrijesili ste, broj %d je veci od 50.\n", rand1);
            score = 0;
            randomBroj();
        }
        else
        {
            printf("Odlicno! Broj %d je manji od 50.\n", rand1);
            score ++;
            randomBroj();
        }
    }
    else
    {
        printf("Upisite 'vece' ako mislite da je veci, a 'manje' ako mislite da je manji.\n");
        scanf(" %s", &veceManje);
    }
}

我得到了这些错误:

   C:\Users\Acer\Desktop>gcc igrica.c
igrica.c: In function 'main':
igrica.c:42:6: error: 'rand1' undeclared <first use in this function>
igrica.c:42:6: note: each undeclared identifier is reported only once for each function it appears in.

感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

为了更新rand1以生成数字,你要么使用指针,要么更简单,只需让你的函数将数字返回给主

int randomBroj()
{
    int rand1
    rand1 = rand() % 100 + 1;
    printf("");
    printf("Novi broj je generisan, probajte pogoditi da li je veci ili manji od 50.\n");
    printf("Upisite 'vece' ako mislite da je veci, a 'manje' ako mislite da je manji.\n");
    return rand1
}

另外,你的main声明是错误的,main是你编译后第一个运行的函数,所以你必须在那里声明rand1

int main()
{
    int rand1;
    rand1 = randomBroj();
    scanf(" %s", &veceManje);
    if(veceManje == "vece")
    {
     ....
    }
}

C实际上并不是一种简单的语言,实际上是最难的语言之一。但是将它作为第一语言学习是很好的,因为学习其他语言会更容易,而且你对内存管理和其他低级细节也有了很好的理解。

不要用C创建GUI。 如果你想这样做,学习一种更容易和更初学者友好的语言,你也可以做GUI只学习python。

答案 1 :(得分:-1)

函数“randomBroj”应该返回它生成的随机数(rand1)。同样,在函数main中,应声明rand1并将其设置为“randomBroj”的返回值。

例如:

void randomBroj()
{
    int rand1;
    rand1 = rand() % 100 + 1;
    return rand1;
}
main()
{
    int rand1 = 0;
    rand1 = randomBroj();
    // The rest of your code
}