本人是C语言的初学者,哪位能不能给我看一下下面的程序到底是哪里发生了错误?

来源:百度知道 编辑:UC知道 时间:2024/05/18 20:46:12
#include"stdio.h"
char s(int n)
{
static char *p[]={"illeger day",
"monday",
"tuesday",
"wensday",
"thursday",
"friday",
"saturday",
"sunday"};
return p[n];
}
main()
{
int n;
char p;
printf ("input the numbers:");
scanf("%d",&n);
if (n<0||n>7) printf("erros");
else if printf("%s",s(n));
}

首先,这句return p[n];返回的是一个字符数组,而不是一个字符,你的函数s返回的却是一个字符,还有,else if printf("%s",s(n));这句中的if要去掉,正确程序如下:
#include<stdio.h>

char *s(int n)
{
static char *p[]={"illeger day",
"monday",
"tuesday",
"wensday",
"thursday",
"friday",
"saturday",
"sunday"};
return p[n];
}
main()
{
int n;
char *p;
printf ("input the numbers:");
scanf("%d",&n);
if (n<0||n>7)
printf("erros");
else
printf("%s",s(n));
}