1.计算某年某月有多少天
//方法一
int input_year(int year)
{
if((year%4==0)&&(year%100!=0)||(year%400==0))
{
return 1;
} else{
return 0;
}
}
int get_month_of_year(int year,int month)
{
int days[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int day=days[month];
if(input_year(year)==1 && month==2)
{
day++;
}
return day;
}
int main()
{
int year=0;
int month=0;
scanf("%d %d",&year,&month);
int day=get_month_of_year(year,month);
printf("%d",day);
return 0;
}*/
//方法二
void Computer_day(int year,int month)
{
if(month==4 || month==6 || month==9 || month==11)
{
printf("%d\n",30);
}
else if(month==2)
{
if(year%400==0 ||(year%4==0 && year%100!=0))
printf("%d\n",29);
else
printf("%d\n",28);
}
else
{
printf("%d\n",31);
}
}
int main()
{
int year = 0;
int month = 0;
//printf("请输入年月:\n");
while (scanf("%d %d", &year, &month)!=EOF)
{
Computer_day(year,month);
}
return 0;
}
2.写一个二分查找函数
功能:在一个升序数组中查找指定的数值,找到了就返回下标,找不到就返回-1.
int bin_search(int arr[], int left, int right, int key)
// arr 是查找的数组
//left 数组的左下标
//right 数组的右下标
//key 要查找的数字
{
int find=-1;
while (left<=right)
{
int mid=(left+right)/2;
if(arr[mid]>key)
{
right=mid-1;
}
else if(arr[mid]<key)
{
left=mid+1;
}
else
{
find=mid;
break;
}
}
return find;
}
int main()
{
int arr[]={1,2,3,4,5,6,7,8,9,10};
int left=0;
int size=sizeof arr/sizeof arr[0];
int right=size-1;
int key=0;
scanf("%d",&key);
int b=bin_search(arr,left,right,key);
printf("找到了,下标是%d",b);
return 0;
}
3.实现一个函数,打印乘法口诀表,口诀表的行数和列数自己指定
如:输入9,输出9*9口诀表,输出12,输出12*12的乘法口诀表。
int table_num(int num)
{
for(int a=1;a<=num;a++)
{
for(int b=1;b<=num;b++)
{
printf("%d*%d=%d ",a,b,a*b);
}
printf("\n");
}
}
int main()
{
int num=0;
scanf("%d",&num);
int a=table_num(num);
}
4.判断闰年
int judge_year(int year)
{
if((year%4==0)&&(year%100!=0)||(year%400==0))
{
printf("是闰年");
}
else{
printf("不是闰年");
}
}
int main()
{
int year=0;
scanf("%d",&year);
int a=judge_year(year);
return 0;
}
5.打印100-200的素数
int is_prime(int i)
{
int find=0;
for(int num=2;num<i;num++)
{
if(i%num==0)
{
find=0;
break;
}
else
find=1;
}
return find;
}
int main()
{
for(int i=100;i<=200;i++)
{
if(is_prime(i)==1)
printf("%d ",i);
}
return 0;
}
6.创建一个整形数组,完成对数组的操作
实现函数init() 初始化数组为全0
实现print() 打印数组的每个元素
实现reverse() 函数完成数组元素的逆置。
void init(int arr[],int set,int size)
{
for(int i=0;i<size;i++)
{
arr[i]=set;
}
}
void print(int arr[],int size)
{
for(int i=0;i<size-1;i++)
{
printf("%d",arr[i]);
}
printf("\n");
}
void reverse(int arr[],int size)
{
for(int i=size-1;i>=0;i--)
{
printf("%d",arr[i]);
}
}
int main()
{
int arr[]={1,2,3,4,5,6,7,8,9,10};
int size=sizeof arr/sizeof arr[0];
init(arr,0,size);
print(arr,size);
reverse(arr,size);
return 0;
}