程序报错
Implicit declaration of function 'scanf_s' is invalid in C99clang(-Wimplicit-function-declaration)
程序如下:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main(void)
{
int menu();
void test();
void practise();
for (;;) {
switch (menu()) {
case 1:test(); break;
case 2:practise(); break;
case 3:exit(0);
}
}
}
int menu()
{
char c;
do {
system("cls");
printf("\n 1.测试\n");
printf("2.练习\n");
printf("3.退出\n");
printf("\n请选择(1或2或3):");
c = getchar();
} while (c < '1' || c> '3');
return c;
}
void test()
{
int numsoftest();
int num();
int ts, i, m, n, s, r = 0;
ts = numsoftest();
for (i = 1; i <= ts; i++) {
do {
m = num(); n = num();
} while ((m + n) > 9);
printf("%p", &s);
if (s == m + n)r++;
}
printf("成绩:%d\n", 100 * r / ts);
printf("按任意键继续");
getchar();
getchar();
}
int numsoftest()
{
int n;
system("cls");
do {
printf("\n请输入题数(10~20):");
scanf_s("%d", &n);
} while (n < 10 || n>20);
return n;
}
void practise()
{
int num();
void right();
void wrong();
int ts, i, m, n, s;
ts = numsoftest();
for (i = 1; i <= ts; i++)
{
do {
m = num(); n = num();
} while ((m + n) > 9);
printf("%d)%d=%d=", i, m, n);
scanf_s("%d", &s);
if (s == m + n)right();
else wrong();
}
printf("请任意键继续");
getchar();
getchar();
}
int num()
{
srand((unsigned)time(NULL));
return rand() % 10;
}void right() {
printf("正确\n");
}
void wrong()
{
printf("错误\n");
}
scanf_s是vc特有的。vc6不支持。