当前位置: 代码迷 >> C语言 >> 会C的帮个忙
  详细解决方案

会C的帮个忙

热度:129   发布时间:2005-01-15 15:11:00.0
会C的帮个忙
要考试了,小弟刚学C语言,有3道题目,不是很懂,也不是很会做,请各位教教小弟~~

1、输出从公元1600年至2000年所有闰年的年号,每输出5个年号换一行,判断公元年是闰年的条件:⑴、公元年数如能被4整除,而不能被100整除,则是闰年;⑵公元年数能被400整除的也是闰年。

2、编写函数把数组中所有奇数放在另一个数组中返回。

3、编写函数对字符数组中的字母,按由大到小的字母顺序进行排序。

[此贴子已经被作者于2005-1-15 15:13:35编辑过]


搜索更多相关的解决方案: 函数  字母  C语言  

----------------解决方案--------------------------------------------------------

抛砖引玉~先写最简单的第一题,请各位检查:

#include <stdio.h>

void main() { int year,sum=0,i;

for(year=1600;year<=2000;year++) { if( (!(year%4) && (year%100)) || !(year%400) ) { printf("%d ",year); sum++; }

if( sum==5 ) { printf("\n"); sum=0; } } getch(); }


----------------解决方案--------------------------------------------------------
谢谢谢谢,关于数组的要怎么做啊?
----------------解决方案--------------------------------------------------------
自己想想先咯,帮你做完就不好玩了
----------------解决方案--------------------------------------------------------
恩,自己当然也会想~
----------------解决方案--------------------------------------------------------

哎~~~那我就贴出来把,不过仅供参考哦 第二题 #include <stdio.h> #define N 10

void trade(int *a,int *b) { int i,j; for(i=j=0;i<N;i++) if( *(a+i)%2 ) *(b+j)=*(a+i),j++; return; } void main() { int a[N],b[N],i;

/*数组b清零*/ for(i=0;i<N;i++) b[i]=0;

/*输入N个数字*/ for(i=0;i<N;i++) scanf("%d",&a[i]);

/*把数组a中所有奇数放在数组b中*/ trade(a,b);

/*打印数组b*/ for(i=0;i<N;i++) printf("%d ",b[i]);

getch(); } 第三题 #include <stdio.h>

void paopao(char *words) { int i,j; char temp;

for(i=0;i<strlen(words);i++) for(j=i+1;j<strlen(words);j++) if(words[i]<words[j]) { temp=words[i]; words[i]=words[j]; words[j]=temp; } }

void main() { char words[255];

gets(words); paopao(words); printf("%s",words); getch(); }

[此贴子已经被作者于2005-1-15 17:45:38编辑过]


----------------解决方案--------------------------------------------------------

我好菜啊! 怎么都写不短! 这是我的第三道题的程序,那位朋友可以帮我修改一下啊!在这里先谢谢了! #include <stdio.h> void main(){ int i,j,k,l=0,m; char a[20],b[20],c,d;

printf("Input the letters:\n"); for(i=0;i<20;i++){ scanf("%c",&a[i]); if(a[i]=='\n') break; } j=i; for(i=0;i<j;i++){ printf("%c",a[i]); } printf("\n");

c=a[0]; for(i=0;i<j;i++){ if(a[i]<c) c=a[i]; } if(c>='a'&&c<='z'){ d=c; } else if(c>='A'&&c<='Z'){ d=c+32; } d=d-1; for(m=0;m<j;m++){ c=d; l=k=-1; for(i=0;i<j;i++){ if(a[i]>='a'&&a[i]<='z'&&(a[i])>c){ c=a[i]; l=i; } else if(a[i]>='A'&&a[i]<='Z'&&(a[i]+32)>c){ c=a[i]+32; k=i; } } if(l<k){ b[m]=c-32; a[k]=d; } else{ b[m]=c; a[l]=d; } } printf("The queue laid from big to small is:\n"); for(m=0;m<j;m++){ printf("%c",b[m]); } printf("\n");

}


----------------解决方案--------------------------------------------------------
以下是引用神vLinux飘飘在2005-1-15 15:29:18的发言:

抛砖引玉~先写最简单的第一题,请各位检查:

#include <stdio.h>

void main() { int year,sum=0,i;

for(year=1600;year<=2000;year++) { if( (!(year%4) && (year%100)) || !(year%400) ) { printf("%d ",year); sum++; }

if( sum==5 ) { printf("\n"); sum=0; } } getch(); }

for(year=1600;year<=2000;year+=4) { if( (year%100) || !(year%400) ) {
----------------解决方案--------------------------------------------------------
for(year=1600;year&lt;=2000;year+=4)
闰年好象不一定是每四年一次哦~~~~~
----------------解决方案--------------------------------------------------------
是不是每四年一次我不知道,但是,和你的结果没什么区别吧?
----------------解决方案--------------------------------------------------------

  相关解决方案