| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 514 人关注过本帖
标题:自学C,有挺多问题的,求指教呀!谢谢
只看楼主 加入收藏
may大象
Rank: 2
等 级:论坛游民
帖 子:55
专家分:38
注 册:2013-5-30
结帖率:87.5%
收藏
已结贴  问题点数:10 回复次数:4 
自学C,有挺多问题的,求指教呀!谢谢
判断某一年是否为闰年
#include"stdio.h"
void main()
{
    int year,leap;
    printf("please enter a year:\n");
    scanf("%d",&year);
    if(year%4!=0) leap=0;      
    else if(year%100!=0) leap=1;
    else if(year%400!=0) leap=0;  
    else leap=1;                 
    if(leap) printf("%d is a leap year\n",year);  (为什么这里是if(leap),不是 if(leap=1)?)
    else printf("%d is not a leap year\n",year);
}


输入一个班全体同学的成绩,把不及格的学生成绩输出,并求学生的平均成绩。假设有5个学生。
#include"stdio.h"
void main()
{
float score,sum=0,average;
int i,n=0;
   for(i=1;i<6;i++)
   {
   printf("please enter score:");
   scanf("%f",&score);
   if(score<60)
   {printf("Fail:%7.2f\n",score);
   continue;}
   sum=sum+score;
   n=n+1;   /*程序是怎么得出及格学生的人数的,n是不是和循环的次数有联系?*/
   }
average=sum/n;
printf("\nn=%d,average=%7.2f\n",n,average);
}



求数列1,1,2,3,5,8,13,...前40个数的和(费波那西数列)
#include"stdio.h"
void main()
{
  long int f1,f2;
    int i;
   f1=1;f2=1;
   for(i=1;i<=20;i++)  
   {
   printf("%12ld%12ld",f1,f2);   
   if(i%2==0) printf("\n");
   f1=f1+f2; f2=f2+f1;
   }
}
/*给i赋初值的时候是根据什么来赋的呢?这个我不是很懂*/
/*请问意思是不是每次都是输出f1,f2两个数,然后循环条件就是<=20?*/
/*if(i%2==0) printf("\n");的意思是循环两次就换行吗?*/



#include"stdio.h"
void main()
{
  char c;
  while((c=getchar())!='\n')
      {if((c>='a' && c<='z') || (c>='A' && c<='Z'))
      { c=c+4;
      if(c>'Z' && c<='Z'+4 || c>'z') c=c-26;  /*为什么这里的小写字母不按大写字

母一样处理?*/
      }
      printf("%c",c);
}
  printf("\n");
}
搜索更多相关主题的帖子: include please 
2013-05-31 13:19
我叫沃恩
Rank: 12Rank: 12Rank: 12
来 自:Asia
等 级:贵宾
威 望:10
帖 子:1234
专家分:3865
注 册:2013-3-29
收藏
得分:10 
为什么这里是if(leap),不是 if(leap=1)? 这句话的意思是:如果leap==1为真就输出,而leap=1,是把1的值赋给leap,前一个是判断,后一个是赋值!
 if(score<60)
   {printf("Fail:%7.2f\n",score);
   continue;}//continue语句会屏蔽后面的语句!也就是如果score<60,则后面的sum=sum+score; n=n+1; 就不会执行!n和循环有关!!
   sum=sum+score;
   n=n+1;  
你的程序有点问题:
程序代码:
#include"stdio.h"
int main()
{
float score,sum=0,average;
int i,n=0;
   for(i=1;i<6;i++)
   {
   printf("please enter score:");
   scanf("%f",&score);
   sum=sum+score;
   if(score<60)
   {printf("Fail:%7.2f\n",score);
   continue;}
   n=n+1;   /*程序是怎么得出及格学生的人数的,n是不是和循环的次数有联系?*/
   }
average=sum/5.0;
printf("\nn=%d,average=%7.2f\n",n,average);//这是改后的代码!!
}

1:个人觉得i的赋值没有什么根据的,看题目的要求,怎样简单就怎样赋值!  2:是 3:是
至于:为什么这里的小写字母不按大写字,你去看看ASCII值的表!就知道了!

因为我是菜鸟,所以应该被骂! 细节+坚持=成功!
2013-05-31 13:34
Han_FlyB
Rank: 6Rank: 6
等 级:侠之大者
帖 子:143
专家分:424
注 册:2013-3-25
收藏
得分:0 
沃恩已经回答得很详细了
2013-05-31 13:58
may大象
Rank: 2
等 级:论坛游民
帖 子:55
专家分:38
注 册:2013-5-30
收藏
得分:0 
回复 2楼 我叫沃恩
恩,明白了,谢谢了。我是好学好问的大象

                             凡成大事者,各有各的方法论。
2013-05-31 14:32
may大象
Rank: 2
等 级:论坛游民
帖 子:55
专家分:38
注 册:2013-5-30
收藏
得分:0 
回复 3楼 Han_FlyB
恩,看到了哦

                             凡成大事者,各有各的方法论。
2013-05-31 14:33
快速回复:自学C,有挺多问题的,求指教呀!谢谢
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016792 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved