【程序设计】 --------------------------------------------------------- 题目:编程求所有4位数,这些数具有以下特点:这数本身是平方数,且其低2位和高2位所组成的2个2位数也是平方数。 要求:使用程序中定义的变量 -------------------------------------------------------*/ #include <stdio.h> #include <math.h> main(){ int qw,bw,sw,gw; // qw 千位数 bw 百位数 sw 十位数 gw 个位数 int a,b; //a 高两位 低两数 int i; //循环变量 /**********Program**********/ /********** End **********/ }
时间: 2023-07-01 18:28:11 浏览: 123
以下是符合题目要求的 C 代码:
```c
#include <stdio.h>
#include <math.h>
int main() {
int qw, bw, sw, gw;
int a, b;
int i;
for (i = 1; i <= 9; i++) { // 千位数从1到9
qw = i;
for (bw = 0; bw <= 9; bw++) { // 百位数从0到9
for (sw = 0; sw <= 9; sw++) { // 十位数从0到9
for (gw = 0; gw <= 9; gw++) { // 个位数从0到9
int num = qw * 1000 + bw * 100 + sw * 10 + gw;
int h = qw * 10 + bw; // 高两位数
int l = sw * 10 + gw; // 低两位数
if (h >= 10 && l >= 10 && sqrt(num) == floor(sqrt(num)) && sqrt(h) == floor(sqrt(h)) && sqrt(l) == floor(sqrt(l))) {
printf("%d\n", num);
}
}
}
}
}
return 0;
}
```
程序的思路如下:
1. 四位数可以分为千位数(`qw`)、百位数(`bw`)、十位数(`sw`)、个位数(`gw`)四部分,因此用四重循环枚举所有可能的四位数。
2. 对于每个四位数,将其拆分为高两位数(`h`)和低两位数(`l`),并判断三个数是否都是平方数。
3. 如果都是平方数,则输出这个数。
值得注意的是,题目要求的两个两位数也是平方数,因此还需要对高低两位数进行判断。