|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
题目是
小强在统计一个小区里居民的出生年月,但是发现大家填写的生日格式不统一,例如有的人写 199808,有的人只写 9808。有强迫症的小强请你写个程序,把所有人的出生年月都整理成 年年年年-月月 格式。对于那些只写了年份后两位的信息,我们默认小于 22 都是 20 开头的,其他都是 19 开头的。
输入格式:
输入在一行中给出一个出生年月,为一个 6 位或者 4 位数,题目保证是 1000 年 1 月到 2021 年 12 月之间的合法年月。
输出格式:
在一行中按标准格式 年年年年-月月 将输入的信息整理输出。
- #include<stdio.h>
- int length(int x)
- {
- int ss=0;
- while(x>0)
- {
- x=x/10;
- ss++;
- }
- return ss;
- }
- int main()
- {
- int n;
- scanf("%d",n);
- if(length(n)==6) printf("%02d-%02d",n/100,n%100);
- if(length(n)==4)
- {
- int a;
- a=n/100;
- if(a>=22) printf("19%02d-%02d",a,n%100);
- if(a<22) printf("20%02d-%02d",a,n%100);
- }
- }
复制代码
在代码中,scanf 函数的参数应该是一个指针,而不是一个整数。换句话说,你应该使用 &n 来将输入的整数保存到变量 n 中。
修改后的代码如下:
- #include <stdio.h>
- int length(int x) {
- int ss = 0;
- while (x > 0) {
- x = x / 10;
- ss++;
- }
- return ss;
- }
- int main() {
- int n;
- scanf("%d", &n);
- if (length(n) == 6)
- printf("%02d-%02d", n / 100, n % 100);
- if (length(n) == 4) {
- int a;
- a = n / 100;
- if (a >= 22)
- printf("19%02d-%02d", a, n % 100);
- if (a < 22)
- printf("20%02d-%02d", a, n % 100);
- }
- return 0;
- }
复制代码
这个程序可以正常地编译和运行,并且根据输入输出了正确的结果。
如果问题已经解决,请设置最佳答案
|
|