编程论坛
注册
登录
编程论坛
→
C++教室
又有作业不懂了,大家帮帮忙
樱花雾海
发布于 2011-10-20 22:07, 956 次点击
今天老师布置了一道作业,以下是题目:
编写一个程序,要求用户输入一个十进制正整数,然后分别转换成为二进制、八进制和十六进制数输出。
因为我们还没有学过进制的转换,所以不懂怎么转换。
7 回复
#2
樱花雾海
2011-10-20 22:42
还有一个是我自己想出来的,就是我们宿舍一共有四个人,我想编写一个程序,使得输入日期就可以知道那天是谁值日,从星期一至星期五轮值,周末一起大扫除。
#3
樱花雾海
2011-10-20 22:49
又有作业了:我们宿舍一共有四个人,想编写一个程序使得只要输入日期就可以知道这天是谁值日,我们是从星期一开始轮值到星期五,而周末一起打扫除。
#4
zqllsszhuqi
2011-10-21 09:03
利用数据结构的栈就能解决咯。。
#5
Jue
2011-10-21 13:24
一:十进制转二、八、十六进制都是相除取余再反置,建议看看进制转换,用栈实现很方便,没有学过栈就用数组;
二:#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();
}
本程序是从第一周的第一天开始值日的,如果楼主不是,可以自行修改,如果觉得编号恶心可以用结构体或者选择结构来输出结果。
#6
Jue
2011-10-21 13:37
优化后的程序:
#include<stdio.h>
main(){
int z,x,i;
printf("请输入今天第X周星期X 如: 1 1\n ");
scanf("%d%d",&z,&x);
if(x>5||x<1||z<1) {printf("error input\n");getche(); exit(0);}
for(i=1;i<=(z-1)*5+x;i++);
printf("Today is number %d\n",(i-2)%4);
getche();
}
#7
鑫乐源
2011-10-21 14:50
浪费了你老师的一番苦心啊,啧啧,,,,
#8
樱花雾海
2011-10-21 23:12
哈哈,谢谢各位啦,我好好研究一下
1