求助,简单的编程题目
编程吧
全部回复
仅看楼主
level 3
苏南1994 楼主
题目
程序填空,不要改变与输入输出有关的语句。
编写一个函数,利用参数传入一个3位数number,找出101~number之间所有满足下列两个条件的数:
它是完全平方数,又有两位数字相同,如144、676等,函数返回找出这样的数据的个数。请同时编写主函数。
例:(括号内为说明)
输入
3(repeat=3)
150
500
999
输出
count=2
count=6
count=8
#include <stdio.h>
#include <math.h>
int search(int n);
int main(void)
{
int number,ri,repeat;
scanf("%d",&repeat);
for(ri=1;ri<=repeat;ri++){
do{
scanf("%d",&number);
}while(number<101||number>999);
printf("count=%d\n",search(number));
}
}
/*---------*/
2013年04月08日 08点04分 1
level 7
第一题
int search(int n)
{
int sum=0;
for(int i=101;i<=n;++i)
{
int sq=sqrt(i);
if(sq*sq==i)
{
int a1=i/100;
int a2=i/10%10;
int a3=i%10;
if(a1==a2 || a2==a3 || a1==a3)
sum++;
}
}
return sum;
}
2013年04月08日 10点04分 3
你这个木有编写主函数吧?程序只能运行一次把
2013年04月09日 14点04分
回复 纳睵藤下 :主函数题目中已经给了,所以他可能没写
2013年04月09日 15点04分
主函数是错的。。。。。
2013年04月09日 15点04分
回复 苏南1994 :他的主函数是错误的,用他的程序仅仅能够运行一次,要把printf("count=%d\n",search(number));放到do while 之间。。。
2013年04月09日 16点04分
level 7
第二题
#include "stdio.h"
double fact(int n);
int main(void)
{
int m, n;
int repeat, ri;
double s;
scanf("%d", &repeat);
for(ri = 1; ri <= repeat; ri++)
{
scanf("%d%d", &m, &n);
/*---------*/
s=fact(n)/(fact(m)*fact(n-m));
printf("result = %.0f\n", s);
}
}
double fact(int n)
{
double ans=1;
for(int i=1;i<=n;++i)
ans*=i;
return ans;
}
2013年04月08日 10点04分 4
谢啦~
2013年04月09日 05点04分
level 6
第一题的正确程序,可以循环你想要的次数。

#include <stdio.h>#
include int search(int n);int main(void){int number,ri,repeat;
scanf("%d",&repeat);for(ri=1;ri<=repeat;ri++){scanf("%d",&number);if(number>=101&&number<=999)
{printf("hello");printf("count=%d\n",search(number));}}
return 0;}int search(int n){int sum=0;for(int i=101;i<=n;++i){int sq=sqrt(i);if(sq*sq==i){int a1=i/100;int a2=i/10%10;int a3=i%10;if(a1==a2 || a2==a3 || a1==a3)sum++;}}return sum;}
/*---------*/
2013年04月09日 15点04分 6
1