本文目录一览:
求C语言编程实例100行以上,要有文字大概解释一下
#include stdio.h
main(int a,char **date)
{
int year=0,month=0,day=0,week;
int d,i,dm,dy,m2;
char WEEK[9];
if (a==1)
{
printf ("\n ERROR! you forgot to enter the date you want to view\n");
exit (0);
}
i=0; d=-1;
while (date[1][i])/*遍历传入的参数日期,计算出year,month,day*/
{
if ((date[1][i]=='/'||date[1][i]=='.')d==-1) { d=0; i++; continue; }
if ((date[1][i]=='/'||date[1][i]=='.')d==0) { d=1; i++; continue; }
if (d==-1) year=year*10+(date[1][i]-'0');
if (d==0) month=month*10+(date[1][i]-'0');
if (d==1) day=day*10+(date[1][i]-'0');
i++;
}
if (month1||month12)/*若月份传入错误数字*/
{
printf ("\n ERROR! the entered MONTH is invalid\n");
exit (0);
}
if (year==2000)
{
dy=0; /*年引起的星期差为0个*/
m2=1; /*2月引起的星期差为1个*/
goto la_100;
}
if (year2000)
d=(year-1-2000)/4-(year-1-2000)/100+(year-1-2000)/400+1;
else
d=(year-2000)/4-(year-2000)/100+(year-2000)/400;
dy=(year-2000)+d; /*** 该年 1月1号 到2000年1月1号的 " 星期差 " ***/
if((year%4==0year%100!=0)||(year%100==0year%400==0))
m2=1;
else
m2=0; /*** 该年是否润 ***/
la_100: /**** la_100 ****/
/*** 该月以前的月所引起的 " 星期差 " ***/
switch (month)
{
case 1: dm=0; month=31; break; /*** month 在此存放该月天数 ***/
case 2: dm=3; month=d==1? 29:28; break;
case 3: dm=3+m2; month=31; break;
case 4: dm=6+m2; month=30; break;
case 5: dm=1+m2; month=31; break;
case 6: dm=4+m2; month=30; break;
case 7: dm=6+m2; month=31; break;
case 8: dm=2+m2; month=31; break;
case 9: dm=5+m2; month=30; break;
case 10: dm=m2; month=31; break;
case 11: dm=3+m2; month=30; break;
case 12: dm=5+m2; month=31; break;
}
if (day0||daymonth)
{
printf ("\n ERROR! the entered DAY is invalid\n");
exit (0);
}
week=(dy+dm+day-1+6)%7;
if(week0)
week+=7;
if (day0) /*** 判定查看类型 ***/
{
switch (week)
{
case 0: strcpy (WEEK,"SUNDAY"); break;
case 1: strcpy (WEEK,"MONDAY"); break;
case 2: strcpy (WEEK,"TUESDAY"); break;
case 3: strcpy (WEEK,"WEDNESDAY"); break;
case 4: strcpy (WEEK,"THURSDAY"); break;
case 5: strcpy (WEEK,"FRIDAY"); break;
case 6: strcpy (WEEK,"SATURDAY"); break;
}
printf ("\n this day is %s \( %d \)\n\n OK!\n",WEEK,week);
}
else
{
week=++week%7;
printf ("\n the calender of this month as following\n");
printf ("\n *********************************\n");
printf (" SUN MON TUE WEN THU FRI STA\n");
for (i=0;iweek;i++)
printf (" ");
for (i=1;i=month;i++)
{
printf (" %2d ",i);
week++;
if (week%7==0i!=month)
printf ("\n");
}
printf ("\n *********************************\n");
printf ("\n OK!\n");
}
}
这是一个万年历的小程序,效率不怎么高,不过涉及到很多基础知识,可以读读
C语言基础,编程?
#includestdio.h
#includestdlib.h//头文件
#includetime.h //头文件
int main()
{
srand((unsigned)time(NULL));//为随机函数rand提供种子
int a[111],b[111],k=0,sum=0;
float aver=0;
for(int i=0;i100;i++)
{
a[i]=rand()%101;//0~100
if(a[i]%3==0)
{
k++;//记数
sum+=a[i];//累加
}
}
aver=1.0*sum/k;//平均值
printf("count=%d average=%.2f",k,aver);
return 0;
}
——————————————————————
#includestdio.h
void fun(int n)
{
float sum=0;
for(int i=1;i=n;i++)
{
if(i%2==1)
sum+=1.0/i;
else
sum+=(-1.0/i);
}
printf("%.6f",sum);
}
int main()
{
int n;
scanf("%d",n);
fun(n);//调用函数
return 0;
}
C语言基础编程问题,要简洁易懂的程序?
函数fun的原理是传字符串指针和字符串长度两个参数,用for循环遍历字符串,
当遇到数字字符时,就把数字字符和其后面的字符向后移动1个字符,
在原来数字字符的位置写一个'$',当前字符位置i加1,字符串长度n加1.
完整的C语言程序如下
#includestdio.h
#includestring.h
void fun(char* s,int n){
int i,j;
for(i=0;s[i]!='\0';i++){
if('0'=s[i]s[i]='9'){
for(j=n;j=i;j--){
s[j+1]=s[j];
}
s[i]='$';
i++;
n++;
}
}
}
int main(){
char a[80];
scanf("%s",a);
fun(a,strlen(a));
printf("%s\n",a);
return 0;
}