1. 题目:通过编程实现,统计1~n有多少个9 (提示:n通过参数传入)
#include <stdio.h>
int main()
{
int n,b;
int a;
int i;
int sum = 0;
printf("please input n :\n");
scanf("%d",&n);
for(i = 1; i <= n; i++)
{
a = i;
while(1)
{
b = a % 10;
a = a/10;
if(b==9)
{
sum++;
}
if(a >= 0 && a <= 9)
{
if(a == 9)
{
sum++;
}
break;
}
}
}
printf("%d\n",sum);
return 0;
}
2.题目:有n个人围成一圈,顺序排号,从第一个开始报数(从1到3报数),凡报到3的人退出圈子,问最后最后留下的是原来第几号的那位.(提示:用数组完成)
#include<stdio.h>
int main()
{
int a[100];
int i,n,p=0,q;
printf("input number:");
scanf("%d",&n);
q=n;
for(i=0;i<n;i++)
a[i]=i+1;
for(i=0;;i++)
{
if(i==n) i=0;
if(a[i]!=0) p++;
else continue;
if(p%3==0
{a[i]=0;q--;}
if(q==1) break;
}
for(i=0;i<n;i++)
if(a[i]!=0)
printf("spare: %d\n\n",a[i]);
return 0;
}
3. 题目:输入5个数(含负数、小数)将它们按由小到大的顺序排列起来(提示:需要排数的数字通过参数传递进来)例如:输入: -1 2.1 -3 5 7 输出: -3 -1 2.1 5 7
#include <stdio.h>
float paixu(float b[])
{
int i,j,min;
float t;
int len=sizeof(b)/sizeof(b[0]);
for ( i = 0; i <4; ++i)
{
min=i;
for (j = i+1;j<5 ; j++)
{
if(b[j]<b[min])
{
min=j;
}
}
if (min!=i)
{
t=b[i];
b[i]=b[min];
b[min]=t;
}
}
return 0;
}
int main()
{
int i;
float a[5];
printf("请输入五个数:\n");
for ( i = 0; i < 5; ++i)
{
scanf("%f",&a[i]);
}
paixu(a);
for(i=0;i<5;i++)
{
printf("%5.1f ",a[i]);
}
printf("\n");
return 0;
}
4. 题目:求100以内的素数,全部打印出来
#include<stdio.h>
#include<math.h>
void main()
{
int m,k,i,n;
for(m=1;m<101;m++)
{
k=sqrt(m);
for(i=2;i<=k;i++)
if(m%i==0)
break;
if(i>=k+1)
{
printf("%d ",m);
n=n+1;
}
if(n%10==0)
printf("\n");
}
printf("\n");
}
5. 题目: 一个数如果恰好等于它的因子之和,这个数被成为”完数”,例如:6=1+2+3.请编程找出1000以内的完数
#include <stdio.h>
void main()
{
int m,i,s;
for(m=1;m<=1000;m++)
{
s=0;
for(i=1;i<m;i++)
if(m%i==0)
s=s+i;
if(s==m)
printf("%d\t",s);
}
}