7月14日作业

1.题目:通过编程实现,统计1~n有多少个9 

#include <stdio.h>
 
void Count(int n)
{
	int i;
	int temp;
	int count = 0;
	int b;

	for(i = 1; i <= n; i++)
	{
		temp = i;
		while(temp != 0)
		{
			b = temp % 10;
			temp = temp / 10;
			if(b == 9)
			{
				count++;
			}
		}
	}
 
	printf("The result is:%d\n", count);
}
 
int main()
{
	int n;
 
	printf("Enter a number!\n");
	scanf("%d", &n);
 
	Count(n);
 
    return 0;
}


2.题目:有n个人围成一圈,顺序排号,从第一个开始报数(从1到3报数),凡报到3的人退出圈子,问最后最后留下的是原来第几号的那位。

#include<stdio.h>
 
int main()
{
	int n, count, i;
	int cn = 0;
	int p = 0;
	int index = 0;
 
	printf("请输入!\n");
	scanf("%d", &n);
	int a[n];
	count = n;//对非0计数
	for(i = 0; i < n; ++i) a[i] = i + 1;
	while(1)
	{
		count = 0;
		for(i = index - n * p; i < n; ++i)
		{
			if(a[i] != 0 )
			{	
				count += 1;
				cn += 1;
				if(cn == 3)
				{
					cn = 0;
					a[i] = 0;
				}	
			}
			
			index += 1;
		}
		p += 1;
		if(count == 1) break;
	}
	for(i = 0; i < n; ++i)
	{
		if(a[i] != 0)
		{
			printf("%d\n",a[i]);
		}
	}
	
	return 0;
}


3.题目:输入5个数(含负数、小数)将它们按由小到大的顺序排列起来

#include <stdio.h>

#define MAXSIZE 100

int sequence(float *num_array, int num)
{
	int i;
	int j;
	float tmp;


	for(i = 0;i < num-1; i++)
	{
		for(j = i + 1; j < num; j++)
		{
			if(*(num_array + i) > *(num_array + j))
			{
				tmp = *(num_array + i);
				*(num_array + i) = *(num_array + j);
				*(num_array + j) = tmp;
			}
		}
	}


	return 0;
}

int main(int argc,char *argv[])
{
	int i;
	int k;
	int total_num;
	float num_array[MAXSIZE];//定义最大容量的数组,存放数字

	printf("共需要输入多少个数字:\n");
	scanf("%d",&total_num);
	printf("依次输入数字:\n");

	for(i = 0; i < total_num; i ++)
	{
		scanf("%f",&num_array[i]);
	}

	sequence(num_array, total_num);//调用函数

	printf("从小到大排序后结果为:\n");
	for(k = 0;k < total_num;k ++)
	{
		printf("%g ",num_array[k]);
	}

	printf("\n");

	return 0;
}

4.题目:求100以内的素数,全部打印出来

#include <stdio.h>

int func(int i)
{
    int j;
    int counter = 0; //定义一个计数器,统计被整除的数的个数

    for ( j = 1; j <= i; j++)
    {
        if (i % j == 0)  
        {
           counter++;  
        }
    }

    if (counter == 2)
    {
       return 1;    //计数器记到2时符合素数条件,返回给主函数
    }    

    return 0;
}

int main()
{
    int i;
    int row = 0;  
    int count = 0;

    printf("The prime Numbers are:\n");
    for ( i = 1; i <= 100; i++)
    {
        if (func(i))
        {  
           row++;
           count++;
           printf("%d\t",i);         
        }
        if (5 == row)   //每行输出5个数
        {
           printf("\n");
           row = 0;
        }
    }

    printf("\n");
    printf("The number of prime Numbers is %d\n",count);   

    return 0;
}

5.题目: 一个数如果恰好等于它的因子之和,这个数被成为”完数”,例如:6=1+2+3.请编程找出1000以内的完数

#include <stdio.h>
int main()
{
	int num, sum = 0, m;
	printf("1\t"); 
	for(num = 2; num <= 1000; num++)
    {
		sum = 0;
		for(m = 1; m < num; m++)
        {
			if(num % m == 0)
			{
				sum = sum + m;
			}
        }
        if(sum == num)
        {
			printf("%d\t", num);
        }
	}
	
	printf("\n");
	
	return 0;
}

猜你喜欢

转载自blog.csdn.net/jsxyma/article/details/81047889
今日推荐