主题:C语言经典100例 for(EXP=1,EXP<=100,EXP++);
leo731
[专家分:3770] 发布于 2005-03-24 10:53:00
[url=http://www.softexam.cn/type/tech/details.asp?catalogf=2&catalogs=3&catalogt=0&article_id=10091&type=24]C语言经典100例[/url]
回复列表 (共174个回复)
101 楼
cafu630 [专家分:10] 发布于 2004-12-10 09:04:00
【程序4】
题目:输入某年某月某日,判断这一天是这一年的第几天?
1.程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊
情况,闰年且输入月份大于3时需考虑多加一天。
2.程序源代码:
main()
{
int day,month,year,sum,leap;
printf("\nplease input year,month,day\n");
scanf("%d,%d,%d",&year,&month,&day);
switch(month)/*先计算某月以前月份的总天数*/
{
case 1:sum=0;break;
case 2:sum=31;break;
case 3:sum=59;break;
case 4:sum=90;break;
case 5:sum=120;break;
case 6:sum=151;break;
case 7:sum=181;break;
case 8:sum=212;break;
case 9:sum=243;break;
case 10:sum=273;break;
case 11:sum=304;break;
case 12:sum=334;break;
default:printf("data error");break;
}
sum=sum+day; /*再加上某天的天数*/
if(year%400==0||(year%4==0&&year%100!=0))/*判断是不是闰年*/
leap=1;
else
leap=0;
if(leap==1&&month>2)/*如果是闰年且月份大于2,总天数应该加一天*/
sum++;
printf("It is the %dth day.",sum);}
这个程序有问题啊!
我输入的是1981630
得到的结果是4271
在程序输出的天数不对啊!
102 楼
cafu630 [专家分:10] 发布于 2004-12-12 14:15:00
main()
{
int day,month,year,sum,leap;
printf("\nplease input year,month,day\n");
scanf("%d%d%d",&year,&month,&day);
switch(month)
{
case 1:sum=0;break;
case 2:sum=31;break;
case 3:sum=59;break;
case 4:sum=90;break;
case 5:sum=120;break;
case 6:sum=151;break;
case 7:sum=181;break;
case 8:sum=212;break;
case 9:sum=243;break;
case 10:sum=273;break;
case 11:sum=304;break;
case 12:sum=334;break;
default:printf("data error\n");break;
}
sum=sum+day;
if(year%400==0||(year%4==0&&year%100!=0))
leap=1;
else
leap=0;
if(leap==1&&month>2)
sum++;
printf("It is the %dth day.",sum);}
问题解决了啊!
103 楼
liupeisong [专家分:2340] 发布于 2004-12-12 23:05:00
【程序27】
/* main digui program in C */
#include <stdio.h>
int main()
{
int c;
if((c=getchar())!=EOF){
main();
printf("%c",c);
}
return 0;
}
104 楼
cafu630 [专家分:10] 发布于 2004-12-14 08:50:00
【程序9】
题目:要求输出国际象棋棋盘。
1.程序分析:用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格。
2.程序源代码:
#include "stdio.h"
main()
{
int i,j;
for(i=0;i<8;i++)
{
for(j=0;j<8;j++)
if((i+j)%2==0)
printf("%c%c",219,219);
else
printf(" ");
printf("\n");
}
}
这个程序怎么不得不到结果啊!而且是黑屏啊!好象是处于死循环啊!
105 楼
酷酷小子 [专家分:40] 发布于 2004-12-16 15:29:00
你好厉害!你是计算机专业的吗?
106 楼
白狮白痴 [专家分:0] 发布于 2004-12-16 15:45:00
程序6的确是垃圾
107 楼
cafu630 [专家分:10] 发布于 2004-12-22 09:54:00
程序11】
题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月
后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....
2.程序源代码:
main()
{
long f1,f2;
int i;
f1=f2=1;
for(i=1;i<=20;i++)
{ printf("%12ld %12ld",f1,f2);
if(i%2==0) printf("\n");/*控制输出,每行四个*/
f1=f1+f2; /*前两个月加起来赋值给第三个月*/
f2=f1+f2; /*前两个月加起来赋值给第三个月*/
}
}
这个程序是不是有问题啊!
108 楼
shangwen [专家分:10] 发布于 2004-12-22 20:08:00
#include <stdio.h>
void main()
{
int n,re=0;
int p,tn=0;
int count=1,i;
int *a;
printf("input the cishu :");
scanf("%d",&n);
printf("input the shu ");
printf("\n");
scanf("%d",&p);
printf("\n");
a=new int [n+1];
while(count<=n)
{
tn=tn*10;
tn=tn+p;
printf("%d\n",tn);
a[count]=tn;
count++;
}
for(i=1;i<=n;i++)
{
printf("ma de %d\n",a[i]);
re+=a[i];
}
printf("%d",re);
delete []a;
}
这是小弟写的第18个,还望各位兄弟指教
109 楼
秋风冷雨 [专家分:0] 发布于 2005-01-02 10:49:00
我是新手,正是我所需要的,谢谢。
110 楼
ffzhen [专家分:60] 发布于 2005-01-02 15:15:00
不会吧,这不是C语言资料大全里面的100例吗?一模一样
我来回复