//功能: 输入两个整数, 求他们的按位与。voidmain(){int x, y, z =0, a, b, k =1;scanf("%d%d",&x,&y);while(x>0&& y>0){
a = x %2;/***********SPACE***********/
x = x/2;
b = y %2;
y = y /2;/***********SPACE***********/
z = z + a*b*k;
k = k *2;}printf("z=%d\n", z);}
第2题:功能: 有 n 个整数, 使其前面各数顺序向后移 m 个位置, 最后 m 个数变成最前面的 m 个数
intmain(){int number[20], n, m, i;printf("the total numbers is:");scanf("%d",&n);printf("back m:");scanf("%d",&m);for(i =0; i<n; i++)scanf("%d",&number[i]);/***********SPACE***********/move(number,n,m);for(i =0; i < n -1; i++)printf("%d,", number[i]);printf("%d", number[n -1]);}move(array,n,m)int n, m, array[20];{int*p, array_end;/***********SPACE***********/
array_end =*(array+n-1);//最后一个元素放到array_endfor(p = array + n -1; p>array; p--)/***********SPACE***********/*p =*(p-1);//倒数第2个放到最后一个位置,一次向后放*array = array_end;//循环完之后把最后一个元素放到第一个位置
m--;//右移次数减1if(m>0)move(array, n, m);//再次调用}
//功能: 编程求某年第 n 天的日期。 用数组表示月天数。#include<stdio.h>intmain(){int y,f, n;int a[12]={31,28,31,30,31,30,31,31,30,31,30,31};printf("y,n=");scanf("%d%d",&y,&n);/***********SPACE***********/
f = y %4==0&& y %100!=0|| y %400==0;
a[1]+=f;if(n<1|| n>365+ f){printf("error!\n");exit(0);}int i =0;while(n >0){
n -= a[i];
i++;}if(n <=0){
i--;//天数循环中多加了一次
n += a[i];//再把日前天数加回来}printf("年=%d,月份=%d,日期=%d\n", y, i+1, n);}
intmain(){int x, y;/***********SPACE***********/for(x =1; x <10; x++)//十位不能有10/***********SPACE***********/for(y =0; y <10; y++)//各位可以有0/***********SPACE***********/if((10* x +2)*(70+ y)==3848){/***********SPACE***********/printf("%d*%d=3848\n", x*10+2,70+y);exit(0);}}
功能: 编程求任意给两个日期(年 月 日)相差的天数。
#include<stdio.h>intdate(int n,int m1,int d1,int m,int m2,int d2){//n 起始年份 m 末年份int i, j, k, t1, t2, q, y, sum =0;int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};for(i = n; i <= m; i++){if(i == n)//起始年是月份从输入的m1月开始
t1 = m1;else t1 =1;//其他的起始月份从1月开始if(i == m)//末尾年月份从m2结束
t2 = m2;//否则再12结束else t2 =12;//起始月份到末月份for(j = t1; j <= t2; j++){//判断当前年是否是闰年if((i %4==0&& i %100!=0)|| i %400==0)//判断该年是否是闰年
a[2]=29;else a[2]=28;if(i == n&&j == m1)//起始年并且是起始月q从d1天开始
q = d1;else q =1;if(i == m&&j == m2)//末尾年并且是末尾月y从d2天结束
y = d2;else y = a[j];//否则就是本月的最后一天for(k = q; k <= y; k++){//起始日+到末尾日
sum++;}}}printf("%d", sum -1);}intmain(){int n, m, m1, m2, d1, d2;int sum;scanf("%d %d %d",&n,&m1,&d1);//起始年月日 scanf("%d %d %d",&m,&m2,&d2);//最终年月日 date(n, m1, d1, m, m2, d2);return0;}