作业
1.1-n有多少个9
#include<stdio.h>
int count(int x)
{
int i=0,j,n;
n=x;
for(;n>0;n--)
{
if(9==(n%10))
{
i++;
}
x=n;
while(x)
{
j=x/10;
x=j;
if(9==(j%10))
{
i++;
}
}
}
return i;
}
main()
{
int n,a;
printf("Please input a number\n");
scanf("%d",&n);
a=count(n);
printf("1-%d有%d个9\n",n,a);
}
1.2 圈最后余下的人的编号
#include <stdio.h>
#define n 4
void main()
{
int a[n],i,quit_num,k;
for(i=0;i<n;i++)/*数组a存放原始编号*/
{
a[i]=i+1;
}
quit_num=0;/*出圈人数*/
i=0;
k=0;
while(quit_num<n-1)/*直到只剩下1人时*/
{
if(a[i]!=0)
{
k++;
}
if(k==3)
{
a[i]=0;
quit_num++;
k=0;
}
i++;
if(i==n)
{
i=0;
}
}
for(i=0;i<n;i++)
{
if(a[i]!=0)
{
printf("第%d个人留到最后\n",a[i]);
}
}
}
1.3小数,整数,负数冒泡排序
#include<stdio.h>
#define SIZE 100
int j;
void input(float *b)
{
int i;
printf("输入要输入的数字的个数\n");
scanf("%d",&j);
printf("输入数据\n");
for(i=0;i<j;i++)
{
scanf("%f",&b[i]);
}
}
void sort(float *b)
{
int i,m;
float num;
for(i=0;i<j-1;i++)
{
for(m=0;m<j-1;m++)
{
if(b[m]>b[m+1])
{
num=b[m];
b[m]=b[m+1];
b[m+1]=num;
}
}
}
}
void print(float *b)
{
int i;
for(i=0;i<j;i++)
{
printf("%f ",b[i]);
}
}
main()
{
float a[SIZE]={0};
input(a);
sort(a);
print(a);
}
1.4 1-n的所有素数
#include<stdio.h>
int i;
void input()
{
printf("请输入一个数将其内所有的素数全部打印:\n");
scanf("%d",&i);
}
void print()
{
int j,k,num=0;
printf("1 ");
for(j=1;j<=i;j++)//包括输入所有的数
{
for(k=1;k<j;k++)//判定j是否是素数
{
if(k!=1)
{
if((j%k)==0)//j不是素数
{
num=j;
break;
}
}
if(k==j-1)
{
printf("%d ",j);
}
}
}
}
main()
{
input();
print();
}
1.5 1-n所有的完数
#include<stdio.h>
int num;
void input()
{
printf("请输入一个数将其以内的所有完数输出;\n");
scanf("%d",&num);
}
int add()
{
int a=0,i;
for(i=num-1;i>1;i--)
{
if(0==(num%i))
{
a=a+(num/i);
}
}
return a+1;
}
void print(int x)
{
if(x==num)
{
printf("%d ",x);
}
}
main()
{
int a,i;
input();
for(i=1;i<=num;num--)
{
a=add();//计算一个数所有因子之和
print(a);//输出满足条件的一个数
}
}