C 练习实例81
题目:809*??=800*??+9*?? 其中??代表的两位数, 809*??为四位数,8*??的结果为两位数,9*??的结果为3位数。求??代表的两位数,及809*??后的结果。
程序分析:无。
实例
// Created by www.runoob.com on 15/11/9.
// Copyright © 2015年 菜鸟教程. All rights reserved.
#include <stdio.h>
void output(long int b, long int i){
printf("\n%ld = 800 * %ld + 9 * %ld\n", b,i,i);
}
int main(){
void output(long int b, long int i);
long int a,b,i;
a = 809;
for(i = 10; i < 100; i++){
b = i * a;
if (b >= 1000 && b <= 10000 && 8 * i < 100 && 9 * i >= 100){
output(b, i);
}
}
return 0;
}
以上实例运行输出结果为:
9708 = 800 * 12 + 9 * 12
C 语言经典100例
BakaCirno1001
341***2969@qq.com
参考方法:
#include<stdio.h> #define floor(x) (double)((int)(x)+( (x)==(int)(x) ? 0 : (x)<0?-1:0 )) #define ceil(x) (double)((int)(x)+( (x)==(int)(x) ? 0 : (x)>0?1:0 )) int main(void) { int m=(int)floor(100.0/8.0),n=(int)ceil(100.0/9.0); //确定范围 int i; for(i=n;i<=m;i++) { if( 809*i == 800*i +9*i ) { printf("%d = 809*%d = 800*%d+9*%d\n",809*i,i,i,i,i); getchar(); return 1; } } printf("没有结果!\n"); getchar(); return 0; }BakaCirno1001
341***2969@qq.com