早教吧 育儿知识 作业答案 考试题库 百科 知识分享

c语言的一些小程序,要预编译头的,急急急!!!!题目一:描述输入n,判断从1到n之中,数字1一共要出现几次。(一个数可能出现多个数字1,例如1123这个数,则出现了两次1.)例如输入1

题目详情
c语言的一些小程序,要预编译头的,急急急!!!!
题目一:
描述
输入n,判断从1到n之中,数字1一共要出现几次。(一个数可能出现多个数字1,例如1123这个数,则出现了两次1.)
例如输入15,那么从1到15之中,一共出现了8个1.

输入
n
输出
m
样例输入
15
样例输出
8
题目二:
描述
用户输入n,然后紧接着输入n个数,计算n个数中有多少个数高于(大于)他们的“算术平均值”。
输入
n
a1 a2 a3 a4 ... an
输出
k
样例输入
5
1 2 3 4 5
样例输出
2

题目3:
描述
 任意一个四位数,只要它们各个位上的数字是不全相同的,就有这样的规律:
  1)将组成该四位数的四个数字由大到小排列,形成由这四个数字构成的最大的四位数;
  2)将组成该四位数的四个数字由小到大排列,形成由这四个数字构成的最小的四位数(如果四个数中含有0,则得到的数不足四位);
  3)求两个数的差,得到一个新的四位数(高位零保留)。
  重复以上过程,最后一定会得到的结果是6174。
  比如:4312 3087 83526174,经过三次变换,得到6174
输入
一个四位整数,输入保证四位数字不全相同
输出
一个整数,表示这个数字经过多少次变换能得到6174
样例输入
4312
样例输出
3
急用,也就是到我发帖30分钟截止,如果有人能回答,立刻再加100分
▼优质解答
答案和解析
您好!
虽然晚了……还是发上来吧:
1、
#include
void main()
{
int i,num,temp,count=0;
scanf("%d",&num);
for(i=1;i<=num;i++)
{
temp=i;
while(temp)
{
if(temp%10==1) count++;
temp/=10;
}
}
printf("%d\n",count);
}
2、
#include
void main()
{
int a[100],i,n,s=0,count=0;
scanf("%d",&n);
for(i=0;i {
scanf("%d",&a[i]);
s+=a[i];
}
s/=n;
for(i=0;i {
if(a[i]>s) count++;
}
printf("%d\n",count);
}
3、
#include
void main()
{
int a[4],i,j,num,temp,max,min,count=0;
scanf("%d",&num);
while(num!=6174)
{
for(i=0;i<4;i++)
{
a[i]=num%10;
num/=10;
}
for(j=0;j<4;j++)
{
for(i=3;i>j;i--)
if(a[i]>a[i-1])
{
temp=a[i];a[i]=a[i-1];a[i-1]=temp;
}
}
max=a[0]*1000+a[1]*100+a[2]*10+a[3];
min=a[3]*1000+a[2]*100+a[1]*10+a[0];
num=max-min;
count++;
}
printf("%d\n",count);
}