目录
本人实力有限可能对一些地方解释和理解的不够清晰,可以自己尝试读代码,或者评论区指出错误,望海涵!
选择题:
题一:
题二:
题三:
题四:
题五:
编程题:
题一:打印1到最大的n位数
思路一:
创建一个指针数组a,用num记录需要输入元素的个数,将从1开始到num个结束的值输入到个个数组下标中,返回指针a。
注意:这里的returnSize指的是数组元素个数!
int* printNumbers(int n, int* returnSize )
{
int i = 0;
int num = 1;
int* a;
//计算元素个数
for(i = n;i != 0;i--)
{
num *= 10;
}
*returnSize =num-1;
//开辟需要存储的个数的空间
a = (int*)malloc(sizeof(int)*(*returnSize));
for(i = 1;i < num;i++)
{
a[i-1] = i;
}
return a;
}
题二:计算日期到天数转换
思路一:
分别创建用来scanf()的year、mon、day,以及记录每月天数的month[ ],再判断年份是否是闰年,再求天数求和。
#include <stdio.h>
int main()
{
int year = 0;
//保存每月天数
int month[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31};
int day = 0;
int mon = 0;
int sum = 0;
scanf("%d%d%d",&year,&mon,&day);
//判断是否是闰年
if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
{
month[2] = 29;
}
//求目标月份前的天数和
for(int i = 1;i < mon ;i++)
{
sum += month[i];
}
printf("%d",sum+day);
return 0;
}