syr7441 发表于 2018-11-26 18:21:52

请帮我看下这个程序问题出在哪里

如图的程序我输入字符后为啥没反应?

#include <stdio.h>
#include <conio.h>

//void sc(char f);
char zf = {'d', 'g', 'w', 's', 'k', 't', 'r', 'b', 'i', 'a'};

int main()
{
        char sr;
        int i;

        for(i = 0; i < 10; i++)
        {
                printf("%c ", zf);
        }
        printf("\n");
       
        while(1)
        {
                sr = getch();
                if(sr == 27)
                {
                        break;
                }
                else
                {
                        extern sc(sr);
                }
        }

        return 0;
}
extern zf;

void sc(char f)
{
        int j, i = 0;
       
        for(; i < 10; i++)
        {
                if(f == zf)
                {
                        j = i;
                        break;
                }
        }
        if(0 == j)
        {
                for(i = 1; i < 10; i++)
                {
                        printf("%c ", zf);
                }
                printf("\n");
        }
        else if(9 == j)
        {
                for(i = 0; i < 9; i++)
                {
                        printf("%c ", zf);
                }
                printf("\n");
        }
        else
        {
                for(i = 0; i < j; i++)
                {
                        printf("%c ", zf);
                }
                for(i = j + 1; i < 10; i++)
                {
                        printf("%c ", zf);
                }
                printf("\n");
        }
}

想都不要想 发表于 2018-11-26 20:33:57

你这个是extern的理解有问题,extern是用在你编写其他的文件中的定义在本文件中使用声明用的,例如:在a.c中你定义了int a=10;
你需要在main.c中使用就在main.c:extern int a;

syr7441 发表于 2018-11-29 00:14:22

想都不要想 发表于 2018-11-26 20:33
你这个是extern的理解有问题,extern是用在你编写其他的文件中的定义在本文件中使用声明用的,例如:在a.c中 ...

那我这个程序应该怎么改啊?

syr7441 发表于 2018-11-29 00:17:06

想都不要想 发表于 2018-11-26 20:33
你这个是extern的理解有问题,extern是用在你编写其他的文件中的定义在本文件中使用声明用的,例如:在a.c中 ...

谢谢,改好了
页: [1]
查看完整版本: 请帮我看下这个程序问题出在哪里