c类型-c枚举运算有问题请教各位geek

问题描述

c枚举运算有问题请教各位geek

#include"stdio.h"
typedef enum {Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday}weekday;
weekday previousday(weekday nowaday);
weekday nextday(weekday nowaday);
int main()
{
int choise;
weekday nowaday,theday;
printf("please input nowaday");
scanf("%c",&nowaday);
printf("please input your choise,0:priviousday 1:nextday");
scanf("%d",&choise);
choise==0?theday=previousday(nowaday):theday=nextday(nowaday);
printf("%c",theday);
}

weekday previousday(weekday nowaday)
{
nowaday=(weekday)(nowaday+1);
return (weekday)(nowaday%7);
}
weekday nextday(weekday nowaday)
{
nowaday=(weekday)(nowaday-1);
return (weekday)(nowaday%7);
}
请帮忙看看这个问题出在哪儿了?谢了。

解决方案

#include "stdafx.h"
#include"stdio.h"
typedef enum {Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday}weekday;
weekday previousday(weekday nowaday);
weekday nextday(weekday nowaday);
int main()
{
int choise;
weekday nowaday,theday;
printf("please input nowaday");
scanf("%d",&nowaday);
printf("please input your choise,0:priviousday 1:nextday");
scanf("%d",&choise);
//choise==0?theday=previousday(nowaday):theday=nextday(nowaday);
theday=choise==0?previousday(nowaday):nextday(nowaday);
printf("%d",theday);
}

weekday previousday(weekday nowaday)
{
nowaday=(weekday)(nowaday-1);
return (weekday)(nowaday%7);
}
weekday nextday(weekday nowaday)
{
nowaday=(weekday)(nowaday+1);
return (weekday)(nowaday%7);
}
试试,看看哪里不明白?

时间: 2024-11-18 22:57:44

c类型-c枚举运算有问题请教各位geek的相关文章

mysql 数据库-mysql中表中列类型是枚举类型不能参与运算吗?

问题描述 mysql中表中列类型是枚举类型不能参与运算吗? 表结构: +------------+---------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +------------+---------------------+------+-----+---------+-------+ | sporter_id | char(4) | YES |

enum-有关Enum枚举的问题,请教

问题描述 有关Enum枚举的问题,请教 这个获取的都是字母获取不到后面的指定的汉字请问什么原因 解决方案 http://www.cnblogs.com/mu-mu/archive/2011/12/28/2304189.html

java-求大神 指点 boolean类型能做运算么

问题描述 求大神 指点 boolean类型能做运算么 public class Test01 { public static void main(String[] args) { // double y=2.5; // y=y+3; boolean true ; System.out.println(true+1); } } 这个有语法错误么 解决方案 没定义变量吧 应该是不对的 解决方案二: 不行有语法错误的 boolean true ;这样应该是 boolean str=true ;true

深度分析 Java 的枚举类型:枚举的线程安全性及序列化问题(转)

写在前面: Java SE5 提供了一种新的类型 Java的枚举类型,关键字 enum 可以将一组具名的值的有限集合创建为一种新的类型,而这些具名的值可以作为常规的程序组件使用,这是一种非常有用的功能.本文将深入分析枚举的源码,看一看枚举是怎么实现的,是如何保证线程安全的,以及为什么用枚举实现的单例是最佳方式. 枚举是如何保证线程安全的 要想看源码,首先得有一个类吧,那么枚举类型到底是什么类呢?是enum吗?答案很明显不是,enum就和class一样,只是一个关键字,他并不是一个类,那么枚举是由

PL/SQL 日期时间类型函数及运算_oracle

内部存储格式: 世纪.年.月.日.小时.分钟.秒 默认格式是:DD-MON-RR. SYSDATE 返回当前的系统时间. SELECT SYSDATE FROM DUAL: 对日期的数学运算 SELECT (SYSDATE-HIRE_DATE)/7 FROM TABLENAME WHERE ROWNUM;   数字列 ADD_MONTHS(date,x)函数,返回加上X月后的日期DATE的值.X可以是任意整数.如果结果的月份中所包含的   日分量少于DATE的月份的日分量,则返回结果月份的最后一

标C编程笔记day05 函数声明、文件读写、联合类型、枚举类型

函数声明:     1.隐式声明:在没有声明的情况下,系统可根据参数类型判断去调用函数(有可能出错)     2.显式声明:声明在被调用之前,如:double add(double,double);  函数声明参数可只写类型,不需要写函数体. 文件操作:     fopen  --打开文件,FILE *pFile=fopen("a.txt","w");         fopen的打开模式:             r:只能读,要求文件存在             

将不确定变为确定~整形变量是否可以进行位运算(像枚举类型一样)

如果您看到这个题目,觉得有点怪,那说明你是一个高人,最起码比我高的多,呵呵. 前几天做了一个公用后台管理系统的项目,其中有一个地方涉及到权限管理的,即为每一个按钮赋一个权限,然后它权限汇总到角色表里,即一种角色有一些操作权限 ,表结构如下: 我们看到OperatorAuthority就是操作权限的意思,它是个int类型的,一个role有一个OperatorAuthority,那我们应该怎么把多个权限存储到OperatorAuthority字段里呢? 这时,我想到了枚举类型的位运算,所以我把权限枚

详解Swift中enum枚举类型的用法_Swift

一.引言 在Objective-C语言中,没有实际上是整型数据,Swift中的枚举则更加灵活,开发者可以不为其分配值类型把枚举作为独立的类型来使用,也可以为其分配值,可以是字符,字符串,整型或者浮点型数据. 二.枚举语法 Swift中enum关键字来进行枚举的创建,使用case来创建每一个枚举值,示例如下: //创建姓氏枚举,和Objective-C不同,Swift枚举不会默认分配值 enum Surname { case 张 case 王 case 李 case 赵 } //创建一个枚举类型的

枚举类型的用法

C# 语言规范 14.3 枚举成员枚举类型声明的体用于定义零个或多个枚举成员,这些成员是该枚举类型的命名常数.任意两个枚举成员不能具有相同的名称. enum-member-declarations:(枚举成员声明:) enum-member-declaration(枚举成员声明)enum-member-declarations , enum-member-declaration(枚举成员声明 , 枚举成员声明) enum-member-declaration:(枚举成员声明:) attribut