C语言编程题目

从键盘任意输入一个公元年份(大于等于1),判断它是否是闰年。若是闰年输出“Yes”,否则输出“No”。要求对输入数据进行合法性判断。
已知符合下列条件之一者是闰年:
(1)能被4整除,但不能被100整除;
(2)能被400整除。

运行结果示例1:
2015↙
No

运行结果示例2:
2016↙
Yes

运行结果示例3:
-123↙
Input error!

运行结果示例4:
a↙
Input error!

输入格式: "%d"
输出格式:
是闰年,输出:"Yes\n"
不是闰年,输出:"No\n"
输入数据不合法,输出:"Input error!\n"
为避免出现格式错误,请直接拷贝粘贴题目中给的格式字符串和提示信息到你的程序中。

#include <stdio.h>
#include <stdlib.h>
main()
{
int y=0;
scanf("%d",&y);
if(y>0){
if(y%400==0||y%100!=0&&y%4==0)
printf("Yes\n");
else
printf("No\n");
}
else
printf("Input error!\n");
system("pause");
}

如果输入了非法字符,scanf不会读取,y会保持原来的数值。

温馨提示:内容为网友见解,仅供参考
第1个回答  2017-10-29
#include <stdio.h>

int main(void) 
{
int y;
if(scanf("%d",&y)==1)
{
if(y<1)
{
printf("Input error!\n");
}
else
{
if(y%400==0||y%100!=0&&y%4==0)
{
printf("Yes\n");
}
else
{
printf("No\n");
}
}
}
else
{
printf("Input error!\n");
}

return 0;
}

本回答被提问者采纳

C语言题目: 求1-1000以内回文数之和
在C语言编程中,若要找出1到1000之间所有回文数的总和,可以编写如下的代码:首先定义整型变量`sum`用于存储回文数之和,并初始化为0。接着,使用`for`循环遍历从1到1000的整数。循环内部,使用`if`语句判断当前整数是否为回文数。对于1位数,如果当前整数小于10,那么它本身就是回文数,直接将其累加到...

用c语言编程,输入一个字符,若是小写字母,转换为大写输出,若是大写字母...
代码如下:includestdio.h intmain(){ charx,y;printf(请输入一个字母:);scanf(%c,x);if(x=ax=z)y=x-32;if(x=Ax=Z)y=x+32;printf(转换后的字符为:%c\\n,y);} 代码在DEVC++环境下运行效果如下:\/iknow-pic.cdn.bcebos.com\/e4dde71190ef76c6732564659016fdfaae51678d"target="_bl...

用c语言编程,输入一个字符,若是小写字母,转换为大写输出,若是大写字母...
include int main() { char x, y;printf("请输入一个字母:");scanf("%c", x);if (x >= 'a' && x <= 'z') { y = x - 32; \/\/ 小写字母转换为大写 } else if (x >= 'A' && x <= 'Z') { y = x + 32; \/\/ 大写字母转换为小写 } else { printf("输入的不是...

c语言小题目。急急急
1. 编程实现:从键盘上接收10个整数,并对其进行排序(要求排成升序)main(){int a[10],i,j,k,t;for(i=0;i<10;i++) scanf("%d",&a[i]);for(i=0;i<9;i++){k=i;for(j=i+1;j<10;j++)if(a[j]<a[k]) k=j;if(k!=i){t=a[k];a[k]=a[i]; a[i]=t;} ...

C语言编程求满足x<y<z条件下x² y² z²=55²有多少组整数解...
我们可以用C语言编写一个程序来求解这个问题。具体思路如下:根据题目条件,我们需要找出满足x<y<z的三个整数,使得它们的平方和等于55的平方。由于x、y、z均为正整数,因此我们可以枚举x、y、z的取值范围(比如从1到30),并在其中寻找符合条件的解。对于每组可能的解,我们可以计算它们的平方和,并...

C语言编程问题求解答
include <stdio.h>int main(){int N=1;scanf("%d",&N);if(N<=0){N=1;}int numSpaceFirst=N-1;for(int row=0; row<N; row++,numSpaceFirst--){for(int i=0; i<numSpaceFirst; i++){printf(" ");}for(int i=0; i<2*row-1; i++){printf("*");}printf("\\n");}...

c语言编程
题目:用*号输出字母C的图案。1.程序分析:可先用’*’号在纸上写出字母C,再分行输出。2.程序源代码:#include “stdio.h“main(){printf(“Hello C-world!\\n“);printf(“ ***\\n“);printf(“ *\\n“);printf(“ * \\n“);printf(“ ***\\n“);}===【程序7】题目:输出特殊图案,请在c环境中运...

急!急!简单c语言编程题,求编写代码
\/\/第一题#include<stdio.h>void fun(int n){ int i,j,k,t;for(k=0;k<n;k++)\/\/控制总行数{ for(i=0;i<n-k-1;i++)\/\/控制输出空格,因为空格不好看见,就用*代替 printf("%c",'*'); for(j=0;j<2*k+1;j++)\/\/控制输出字母 { printf("%c",65+j)...

c语言编程100题,有没有大神帮帮忙
您好,c语言经典100题:【程序1】题目:有1,2,3,4个数字,能组成多少个互不相同且无重复数字的三位数 都是多少 1.程序分析:可填在百位,十位,个位的数字都是1,2,3,4.组成所有的排列后再去 掉不满足条件的排列.2.程序源代码:main(){ int i,j,k;printf("\\n");for(i1;i<5;i++)\/*...

请问一下大佬们,这道C语言编程题我为什么错,还有这些监测点的划分依据是...
C语言中一般int为32位,最大只能表示12的阶乘,超过12就会产生溢出,而题目中明确说明了数据会在double范围内,就是有可能超过int所表示范围。需要改为double类型。监测点划分依据:Cmn表示从n中选m个有多少情况,通过数学分析我们知道,当m=n\/2时取得最大值。因为我们有公式只要m1+m2=n那Cm1n=Cm2n...

相似回答