一道c语言题目

【问题描述】
传说可以根据两个人的生日来计算其缘份,缘份值在0-9之间。
方法:将两个人的生日各位相加,将得到的数再一次各位相加,直到其值为一个一位数,此数即代表两个人的缘分.
例如,两个生日为:19970523,19961121,则各位相加:1+9+9+7+5+2+3+1+9+9+6+1+1+2+1得:66;再6+6得12;再 1+2得3,即为两人的缘分.
编写计算缘分程序,两个生日由键盘输入。
【输入形式】两个日期,形式为 yyyymmdd,如20010501
【输出形式】缘份值,是一个一位数
【样例输入1】
Input the first date:20010111
Input the second date:19971231
【样例输出1】
Fate value is 3
【样例输入2】
Input the first date:19990921
Input the second date:19980309
【样例输入2】
Fate value is 7
【样例说明】
下划线上是输入的日期,文字是输入前的提示。输入不判别日期是否合法。输出的缘份值是各位数字多次累加后的一位数
【评分标准】
输入输出的格式符合题目要求,计算结果正确,得满分100

第1个回答  2020-04-29
首先,你的程序应该有问题,变量C没有定义,所以应该会报错。如果把定义语句改为float
a,b,c;并且把赋值语句都加上分号的话应该会输出如下结果:
a=123.450000
b=32.560000
c=123.450000
解释:%f禁止使用指数形式来表示浮点数,但注意它的精度要求:也是小数点后6位有效数字。
第2个回答  2019-04-07
#include <stdio.h>
char const des[][25] = { {"Input the first date:"},
                         {"Input the second date:"} };
int inputDate(int i) {
  printf("%s", des[i]);
  int x;
  scanf("%d",&x);
  return x;
}
int sumUp(int x) {
    int sum = 0;
    while(x) {
        sum += x % 10;
        x /= 10;
    }
    return sum;
}
int deduce(int x) {
  if(x < 10) return x;
  return deduce(sumUp(x));
}
int main()
{
  int a = inputDate(0);
  int b = inputDate(1);
  printf("Fate value is %d", deduce(sumUp(a) + sumUp(b)));
  return 0;
}

追问

格式有点小问题

你用的语法我没学过

不知道怎么改

追答

就是字符串冒号后面加了个空格,你自己删掉就好了。

本回答被提问者采纳

有一道C语言的题目:已知:char a; int b; float c; double d;则计算表...
该题选择D答案:1、a定义的是char型,实际上他也可以看做是int型,你试过没有将一个char型的变量用%d的格式输出后,为一个整数,该整数是该字符的ASCII码,是十进制而已。所以a*c之后的类型为float型 2、a*c+c自然也就是float型了。。那么最后就变为float减去一个double型,因为double型表示的...

一道C语言
答案C char str[][20]={"Hello","Beijing"} 这表示str是个二维数组,由两个一维数组构成,每个一维数组是20个字节构成。p=str 这表示p是指针,指向二维数组str的首地址 p+20 这表示由p指向的地址向后偏移20个字节,刚好指向了第二个一维数组“Beijing”了 strlen()它是字符数组长函数,对“Beij...

C语言的,帮我编一下.谢谢了
主要是1、2题哇???那我就开工了,直接输入的,没经过编译,自己查一下错。第一题:define MAX 0 define MIN 1 float fun(float a[],float maxmin[]){int i;float average,s=0.;maxmin[MAX]=maxmin[MIN]=a[0];for(i=0;i<N;i++){s+=a[i];if(a[i]>maxmin[MAX])maxmin[...

一道C语言题目,看图~大神帮忙解答下吧!急急急急急!!在线等
答案是D 在C语言中数组赋值可以如A,那样,【】里面定义了长度5{}中有最大不超过5个值,则赋值成功 B在5个数值之内所以也是正确的 答案C,就是另外中赋值方法,在【】中不定义长度,因此数组a[]的实际长度取决于{}中的值的数量,也就是说在C答案中有5个0作为数值,因此C答案中的a[]的实际...

一道c语言题目
char范围: -128~127 int 范围:-32768 ~32767 short范围:-32768~32767 A B C赋值都超出数据范围 ,故错误。double d;d=1;d=1.0 以上等价,因为无论赋的值是1还是1.0,通过赋值号=赋值后,d的值都是1.0, 会进行类型转换,类型由double决定.float 与此一样。故答案选D ...

c语言的一道填空题 很简单
执行顺序从右向左进行。首先,计算表达式a*a,结果为36。此时,a的值被更新为36。接着,执行a=a-36,即36-36,结果为0。因此,a的值变为0。最后,执行a=a+(-30),即0-30,结果为-30。最终,a的值为-30。

一道c语言的题目(40
答案是1、a^b 1、^运算是按位来对比,如果不一样的话,就为1,一样就为0.所以,当执行完a^b 的时候,就可以得到10101101;(高位取反,低位不变,)2、| 是或运行,有1 的话就得到 1, 两种为0 则为0;所以,执行a|b 的话,得到的是 11111101;(高位置1)3、 &与运算,两种为1则为1,...

一道c语言体(求1到1000之内能被7或11整除但不能同时被7和11整除的所有...
1、首先在电脑中找到DEV C++软件打开,在编辑页面输入以下源代码。2、在判断时,直接用IF判断语句来进行判断,也刚好符合题目要求的用IF语句来完成这个程序。3、因为此次程序需要进行多次不同的判断,所以可以在进行判断时,全部用IF来完成,也可以用IF结合ELSE来完成。4、在编程中否是“!=”表示,“=...

一道C语言的编程题,兔子洞的问题。
int main(){ \/\/Hole表示20个三洞 ,Hole【21】是为了数组下标从1开始,方便对题目的理解 \/\/初始化为0,表示还没有被 灰狼搜索 int Hole[21] = {0};int i = 1,j;\/\/进行15次循环,表示灰狼搜索了15次 for(j = 1; j <= 15; j++){ Hole[i] = 1; \/\/将洞i设为1,表示编号为...

一道C语言题目 有3个整数a,b,c,由键盘输入,输出其中最大的数,请编写...
你要输入整数,所以要定义a,b,c为整数,而不是float,输入输出不能用%f,应用%d,还有t未使用而使用了未定义的max故应把t改为max;所以是 int main (void){ int a,b,c,max;printf("请输入三个任意整数:\\n");scanf("%d%d%d",&a, &b, &c);if(a>=b) max=a;else max=b;if(b...

相似回答