王梓 2018.7.14
1. 题目:通过编程实现,统计1~n有多少个9
#include<stdio.h>
int main()
{
int count=0;
int i ,n;
printf("please input n: ");
scanf("%d",&n);
for(i=n;i>=1;i--)
{
if((i%10)==9)
{
count++;
}
}
printf("%d's 9",count);
while(1);
return 0;
}
2. 题目:有n个人围成一圈,顺序排号,从第一个开始报数(从1到3报数),凡报到3的人退出圈子,问最后最后留下的是原来第几号的那位.
#include<stdio.h>
int main()
{
int n;
int quitnum,i,j;
int a[100];
printf("how many people:");
scanf("%d",&n);
for(i=0;i<n;i++)
{
a[i]=i+1;
}
quitnum = 0;
while(quitnum<n-1)
{
if(a[i]!=0)
{
j++;
}
if(j==3)
{
a[i]=0;
quitnum++;
j=0;
}
i++;
if(i==n)
{
i=0;
}
}
for(i=0;i<n;i++)
{
if(a[i]!=0)
{
printf("number %d stays\n",a[i]);
}
}
}
3. 题目:输入5个数(含负数、小数)将它们按由小到大的顺序排列起来
#include<stdio.h>
#define SIZE 100
int j=5;
void input(float *a)
{
int i;
printf("input\n");
for(i=0;i<j;i++)
{
scanf("%f",&a[i]);
}
}
void sort(float *a)
{
int i,m;
float num;
for(i=0;i<j-1;i++)
{
for(m=0;m<j-1;m++)
{
if(a[m]>a[m+1])
{
num=a[m];
a[m]=a[m+1];
a[m+1]=num;
}
}
}
}
void print(float *a)
{
int i;
for(i=0;i<j;i++)
{
printf("%f ",a[i]);
}
}
main()
{
float a[SIZE]={0};
input(a);
sort(a);
print(a);
}
4. 题目:求100以内的素数,全部打印出来
#include<stdio.h>
int i;
void input()
{
printf("input:\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++)//
{
if(k!=1)
{
if((j%k)==0)
{
num=j;
break;
}
}
if(k==j-1)
{
printf("%d ",j);
}
}
}
}
main()
{
input();
print();
}
5. 题目: 一个数如果恰好等于它的因子之和,这个数被成为”完数”,例如:6=1+2+3.请编程找出1000以内的完数
#include<stdio.h>
int num;
void input()
{
printf("input;\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);
}
}