补充完下段程序

来源:百度知道 编辑:UC知道 时间:2024/05/16 13:14:07
程序的意思:输入一项职业,通过enum或其它函数定义一批“职业”,再通过搜索,检查输入的职业是否在该批职业中。
我打算用指针达到目的。
先谢谢大家了

#include "stdio.h"
void main()
{
enum job
{
writer,actor,salesperson,policeman,doctor
}e,f;
int *p,j,i;
p=&j;
scanf("%d",p);
for (i=1;i++;i<6)
{
if(*p==)
也可以修改其中的语句

楼主你晓得,枚举元素在默认情况下对应值从0开始

#include <stdio.h>
enum job
{
writer,actor,salesperson,policeman,doctor
};
int main()
{
printf("%d %d %d %d %d",writer,actor,salesperson,policeman,doctor);
}
输出为0 1 2 3 4
所以如果输入的职业在其中,那么判断if(*p>=0&&*p<=4)就可以了,具体是什么职业可以
switch(*p)
{case 0:printf("writer");break;
case 1:....}
来实现
但是在输入的时候,显然只能以int之类而不能以字符串输入

枚举型只是助记符,writer的值是0而不是字符串..
所以,像上面那样判断,好像跟定义枚举与否无关..

恩,当然,楼主你想问的是用*p和枚举元素比较吧?
就我所知,你只有if(*p=writer)这样或者
switch(*p){case writer:...}这样逐个比较..
你要知道枚举是类型而不是数组变量,类型是不会被分配实际空间的

我的话,则这么做,题目说到不一定用枚举
#include <stdio.h>
#include <string.h>
int main()
{
char *a[5]={"writer","actor","salesperson","policeman","doctor"};
char s[10];
scanf("%s",s);
for(int i=0;i<5;i++)
if