一:十进制转二、八、十六进制都是相除取余再反置,建议看看进制转换,用栈实现很方便,没有学过栈就用数组;
二:#include<stdio.h>
void re(int per[]){
int i;
for(i=0;i<4;i++)
per[i]=0;
}
main(){
int per[4];
int n,z,x;
int i,j;
re(per);
printf("请输入今天第X周星期X 如: 1 1\n ");
scanf("%d%d",&z,&x);
if(x>5||z<1) {printf("error input\n");getche(); exit(0);}
for(i=1;i<=(z-1)*5+x;i++){
per[(i-1)%4]=1;
if(per[3]) re(per);
}
printf("Today is number %d\n",(i-2)%4);
getche();
}
本程序是从第一周的第一天开始值日的,如果楼主不是,可以自行修改,如果觉得编号恶心可以用结构体或者选择结构来输出结果。