C语言编写程序进行年龄比较
判断需要用==
你只用了一个等于号
#include
intmain()
inta,b,c;
intx,y,z;
scanf("%d%d%d",&a,&b,&c);
scanf("%d%d%d",&x,&y,&z);
if(a>x)
printf("younger");
if(x>a)
printf("older");
if(x==a){
if(b>y)
printf("younger");
if(y>b)
printf("older");
if(y==b){
if(c>z)
printf("younger");
if(c
printf("older");
if(c==z)
printf("same");
return0;
c编程:求年龄
#include
#include
#include
intcheck(intx3,intx4){
inti,j;
charc;
chararr[11];
//判断x3是否为4位数
if(x3<1000||x3>9999){
//x3不是4位数,校验不通过,返回0
return0;
//判断x4是否为6位数
if(x4<100000||x4>999999){
//x4不是6位数,校验不通过,返回0
return0;
//下面判断x3和x4这10个数字是否重复
//先把x3和x4这10个数字拼接成字符串,保存到数组arr中
//arr数组长度为11,最后一位将保存为\0字符成结束符
sprintf(arr,"%d%d",x3,x4);
//对arr字符数组中的10个数字字符进行升序排序
for(i=0;i
for(j=0;j
if(arr[j]>arr[j+1]){
c=arr[j];
arr[j]=arr[j+1];
arr[j+1]=c;
//如果10个数字字符没有重复的,那升序排序完成后,顺序必然是:0123456789
for(i=0;i
//比较的是字符,所有要讲int数字转换为其对于的字符,即加上0字符的ASCII值
if(arr[i]!=(0+i)){
//只要有一个不同,则校验不通过,返回0
return0;
//运行到这里,说明所有条件已通过校验,返回1
return1;
intmain(){
inti,max,x3,x4;
//先求出最大可能的数,防止大数做4次方运算时超出int的最大值导致程序出错,
//sqrt和ceil两个数学函数在math.h头文件中,
//sqrt表示开平方,开两次平方(即开4次方),ceil表示小数向上取整,
//因为4次方最大值为6位数,所以对1000000开4次方得出来的值就是可能的最大值,
//实际这个值是计算出来是32
max=ceil(sqrt(sqrt(1000000)));
//100的三次方已经达到了6位数,遍历到100足以
for(i=1;i<100;i++){
//pow是求幂函数,在math.h头文件中
x3=pow(i,3);//i的三次方
x4=pow(i,4);//i的四次方
//判断两个数值是否满足要求
if(check(x3,x4)){
printf("年龄:%d,x^3=%d,x^4=%d\n",i,x3,x4);
return0;
结果为:18
分析清晰,注释详细,望采纳!
更多追问追答
不错,和我当年一样的做法!
早知你当年这么牛,我就不写这么详细的注释了。
其实我是想看有无其他的解法,要思想的!