关于C的一些小而精的编程,适合希望提升编程能力的初学者学习:关键编程也就几句,但思维可以迁移到其他编程语言。同一问题,算法多种。
//任意整数的任意次方取后3位(算数取位)
#include<stdio.h>
int main()
{
int x,y,i,z=1;
printf("输入任意整数(不可超过int型数据存储空间)的任意次方:");
scanf("%d%d",&x,&y);
for (i=1; i<=y; i++)
{
z=z*x%1000;//关键算法句
}
if(z>=100)
{
printf("%d^%d的最后3位数为:%d",x,y,z);
}
else if(z>=10&&z<100)
{
printf("%d^%d的最后3位数为:0%d",x,y,z);
}
else
{
printf("%d^%d的最后3位数为:00%d",x,y,z);
}
return 0;
//计算输入日期是一年中的第几天(日期取序)
#include<stdio.h>
int num(int year);
int total(int year,int month);
main()
{
int year,month,day,n;
printf("请输入年月日:");
scanf("%d%d%d",&year,&month,&day);
n=total(year,month);
n+=day;
printf("这个日期是今年的第%d天",n);
}
int num(int year)
{
if (year%4==0&&year%100!=0||year%400==0)
{
return 1;
}
else
{
return 0;
}
}
int total(int year,int month)//关键算法块
{
int run[12]= {31,29,31,30,31,30,31,31,30,31,30,31};
int pin[12]= {31,28,31,30,31,30,31,31,30,31,30,31};
int i,daytotal=0;
if(num(year)==1)
{
for (i=0; i<month-1; i++)
{
daytotal=daytotal+run[i];
}
}
else
{
for (i=0; i<month-1; i++)
{
daytotal=daytotal+pin[i];
}
}
return daytotal;
}
备注:暂时用比较基础的方法来写,循序渐进学习高级编程。如果看官能发挥主观能动性编写更好的,这更比程序重要。