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");
}