标题:较多不懂...新手求教......
只看楼主
pangshch
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:2
帖 子:443
专家分:1966
注 册:2013-4-9
得分:0 
程序代码:
/* 你函数调用中好像每个函数都要用到a, b
   在主函数中,都没定义,赋值,你就直接传递参数?? 很不能理解.
   我把a, b定义为外部变量.
*/

#include<stdio.h>
#include<time.h>
#include<stdlib.h>

int Renwu1(void);    // 因为a, b为外部变量了, 参数传递就省了.
int Renwu2(void);    // 下面的函数都没定义. 我想是你没附上来.
int Renwu3(void);
int Renwu4(void);
int Renwu5(void);
int Renwu6(void);
int Time_a(void);
int Time_b(void);
int Jscf(void);
int Time(void); 

static int a, b;

int main()
{
    int n;

    srand(time(NULL));    // 这个函数放在这里

    printf("选择任务: (1~6)\n:");     
    while(scanf("%d",&n)!=1 && (n>6||n<1))
    {
        while(getchar() != '\n');
        printf("选择任务: (1~6)");
     }

    switch (n)
    {
        case 1:
            Renwu1();         // 函数调用不要加类型说明符了.
            break;
        case 2:
            Renwu2();
            break;
        case 3:
            Renwu3();
            break;
        case 4:
            Renwu4();
            break;
        case 5:
            Renwu5();
            break;
        case 6:
            Renwu6();
            break;
    }
}
//任?1:
int Renwu1(void)
{
     int i,p;
     a = Time_a();   // 这里放到for () 外面.
     b = Time_b();
     for(i = 1;;i++)
     {
         printf("%d*%d = ",a,b);
         scanf("%d",&p);
         if(p == Jscf())
        {
            printf("Right!\n");
            break;                 // 这里不跳出,你的就是个无限循环.
        }
        else printf("Wrong! Please try again.\n");
     }
     return 0;
}

int Jscf(void) 
{
    return a*b;
}
int Time_a(void)  
{
    return rand()%10+1;
}
int Time_b(void) 
{
    return rand()%10+1;
}


[ 本帖最后由 pangshch 于 2013-11-22 18:13 编辑 ]
2013-11-22 18:05
未来ken
Rank: 2
等 级:论坛游民
帖 子:102
专家分:96
注 册:2013-11-16
得分:0 
C:\Users\c\Desktop\实验报告\collect2.exe [Error] ld returned 1 exit status
这个又出问题了......

任重而道远
2013-11-22 18:10
pangshch
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:2
帖 子:443
专家分:1966
注 册:2013-4-9
得分:0 
回复 12楼 未来ken
你再试试上面的代码, 我改了a, b赋值的位置,
另外, 你后面的那几个
int Renwu2(void);    // 下面的函?都?定?. 我想是你?附上?.
int Renwu3(void);
int Renwu4(void);
int Renwu5(void);
int Renwu6(void);

定义了没有??
2013-11-22 18:15
未来ken
Rank: 2
等 级:论坛游民
帖 子:102
专家分:96
注 册:2013-11-16
得分:0 
没有啊...暂时还没写呢......

任重而道远
2013-11-22 18:17
未来ken
Rank: 2
等 级:论坛游民
帖 子:102
专家分:96
注 册:2013-11-16
得分:0 
我试了..但是说的是...
   In function `main':
   [Linker error] C:/Users/胡伟/Desktop/实验报告/Untitled5.cpp:42: undefined reference to `Renwu2()'
   [Linker error] C:/Users/胡伟/Desktop/实验报告/Untitled5.cpp:45: undefined reference to `Renwu3()'
   [Linker error] C:/Users/胡伟/Desktop/实验报告/Untitled5.cpp:48: undefined reference to `Renwu4()'
   [Linker error] C:/Users/胡伟/Desktop/实验报告/Untitled5.cpp:51: undefined reference to `Renwu5()'
   [Linker error] C:/Users/胡伟/Desktop/实验报告/Untitled5.cpp:54: undefined reference to `Renwu6()'
 C:\Users\胡伟\Desktop\实验报告\collect2.exe [Error] ld returned 1 exit status

任重而道远
2013-11-22 18:22
pangshch
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:2
帖 子:443
专家分:1966
注 册:2013-4-9
得分:20 
程序代码:
switch (n)
    {
        case 1:
            Renwu1();         // 函数调用不要加类型说明符了.
            break;
        case 2:
            Renwu2();
            break;
        case 3:
            Renwu3();
            break;
        case 4:
            Renwu4();
            break;
        case 5:
            Renwu5();
            break;
        case 6:
            Renwu6();
            break;
    }
}
那你把上面的部分改成
程序代码:
switch (n)
    {
        case 1:
            Renwu1();         // 函数调用不要加类型说明符了.
            break;
           }
}
等你定义好了函数再加进去.

2013-11-22 18:22
未来ken
Rank: 2
等 级:论坛游民
帖 子:102
专家分:96
注 册:2013-11-16
得分:0 
这个原因啊.....我试试。。。

任重而道远
2013-11-22 18:24
未来ken
Rank: 2
等 级:论坛游民
帖 子:102
专家分:96
注 册:2013-11-16
得分:0 
多谢...出来了......麻烦您了...

任重而道远
2013-11-22 18:25



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-424020-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.243990 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved