C语言入门 - 练习实例100

C 练习实例1

题目: 有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

程序分析: 可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。


#include<stdio.h>

#include<unistd.h>//linux system .h 


int main()
{
        int i ,j,k;//1,2,3,4

        int  flag = 0;

        int flag_ = 0;

        for(i = 1;i < 5;i++)
        {
                for(j = 1;j < 5;j++)
                {
                        for(k = 1;k < 5;k++)
                        {
                                printf("%d%d%d\n",i,j,k);

                                flag_++;                           
                                if (i!=j&&j!=k&&i!=k)
                                {
                                printf("--%d,%d,%d--\n",i,j,k);

                                flag++;
                                }

                        }
                }
        //printf("this is a test!\n");
        

        
        sleep(1);
        }


        printf("flag is :%d\n",flag);

        printf("flag_ is :%d\n",flag_);
}

C 练习实例2

题目: 企业发放的奖金根据利润提成。

  • 利润(I)低于或等于10万元时,奖金可提10%;
  • 利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;
  • 20万到40万之间时,高于20万元的部分,可提成5%;
  • 40万到60万之间时高于40万元的部分,可提成3%;
  • 60万到100万之间时,高于60万元的部分,可提成1.5%;
  • 高于100万元时,超过100万元的部分按1%提成。

从键盘输入当月利润I,求应发放奖金总数?

程序分析: 请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。

...

C 练习实例5

题目: 输入三个整数x,y,z,请把这三个数由小到大输出。

程序分析: 我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。



#include<stdio.h>

#include<unistd.h>
typedef int INT;

#define  N  10

int main()
{
	for(int i = 0;i<N;i++){

		printf("this is %d test!\n",i);
		
		sleep(1);
	}


	INT  x,y,z;
	INT t;

	printf("please input 3 number:\n");

	scanf("%d%d%d\n",&x,&y,&z);
	
	printf("Now,3 number is:%-4d%-4d%-4d\n",x,y,z);
	
	if(x>y)
	{
		t = x;
		x = y;
		y = t;
	}

	if(x>z)
	{
		t = x;
		x = z;
		z = t;
		
	}

	if(y>z)
	{
		t = y;
		y = z;
		z = t;
	}

	printf("Now ,min number is:%-4d%-4d%-4d\n",x,y,z);

}

C 练习实例71

题目: 编写input()和output()函数输入,输出5个学生的数据记录。

程序分析: 无。



#include<stdio.h>
#include<stdlib.h>

typedef struct{

		char name[22];

		char gender[5];

		int age;
}STU;
void input(STU stu[])//STU *stu
{	
	int i;
	for(i=0;i<5;i++)
	{
		scanf("%s%s%d",stu[i].name,stu[i].gender,&(stu[i].age));
	}
}

void output(STU stu[])
{
	int i;
	
	for(i = 0;i<5;i++)
	{
		printf("%s- %s- %d\n",stu[i].name,stu[i].gender,stu[i].age);

	}

}

int main()
{
	STU stu[5];
	
	printf("please input :\n");

	input(stu);

	printf("message is:\n");

	output(stu);

	system("pause");

	

}

猜你喜欢

转载自blog.csdn.net/Naiva/article/details/85205094