作业帮 > 综合 > 作业

C语言求教输入两个正整数m和n(m≥100,n

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/26 02:57:41
C语言求教输入两个正整数m和n(m≥100,n
/*
m n = 100 1000
100 121 144 225 400 441 484 676 900
Press any key to continue
*/

#include <stdio.h>
#include <math.h>

int hasRepNum(int n) {
\x05int a,b,c;
\x05if(n < 100 || n > 1000) return 0;
\x05a = n % 10;
\x05n /= 10;
\x05b = n % 10;
\x05n /= 10;
\x05c = n % 10;
\x05if(a == b || b == c || c == a) return 1;
\x05return 0;
}

int main() {
\x05int i,m,n,t;
\x05printf("m n = ");
\x05scanf("%d%d",&m,&n);
\x05for(i = m; i <= n; ++i) {
\x05\x05t = (int)sqrt(i);
\x05\x05if(t * t == i && hasRepNum(i))
\x05\x05\x05printf("%d ",i);
\x05}
\x05printf("\n");
\x05return 0;
}
再问: 基本对了,就是差一点{每行输出4个,字符宽度为5个左对齐。}这个怎么弄
再答: /*m n = 100 1000
  100  121  144  225  400  441  484  676  900Press any key to continue*/#include <stdio.h>
#include <math.h>
 
int hasRepNum(int n) {
    int a,b,c;
    if(n < 100 || n > 1000) return 0;
    a = n % 10;
    n /= 10;
    b = n % 10;
    n /= 10;
    c = n % 10;
    if(a == b || b == c || c == a) return 1;
    return 0;
}
 
int main() {
    int i,m,n,t,cnt = 0;
    printf("m n = ");
    scanf("%d%d",&m,&n);
    for(i = m; i <= n; ++i) {
        t = (int)sqrt(i);
        if(t * t == i && hasRepNum(i)) {
if(cnt && !(cnt % 4)) printf("\n");
            printf("%5d",i);
++cnt;
}
    }
    printf("\n");
    return 0;
}