C语言中的顺序程序,类似与下面的程序都叫顺序程序:
一,简单输出变量的值
二,接收用户输入的值,存入变量中,并打印出来
三,用户输入两个数,算出两个数相乘的值和相加的值
C语言中的分支结构程序,类似与下面的程序都是分支结构程序:
一,分支语句之 if 语句(当条件成立就执行{}里面的表达式)
二,分支语句之 if else语句(当条件成立执行{}里的表达式,条件不成了,则执行else{}里面的表达式)
三,分支语句之多重分支 (If else if else if else if else)
/*****************************************************************
*企业发放的奖金根据利润提成。利润(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,求应发放奖金总数?***
*******************************************************************/
double i,d,s;
printf("输入利润值:");
scanf_s("%lf", &i);
if (i<=100000)
{
d = 10;
}
else if (i > 100000 && i<=200000)
{
d = 7.5;
}
else if (i > 200000 && i <= 400000)
{
d = 5;
}
else if (i > 400000 && i <= 600000)
{
d = 3;
}
else if (i > 600000 && i <= 1000000)
{
d = 1.5;
}
if (i > 1000000)
{
d = 1;
}
s = i * (d / 100.0);
printf("%lf", s);
四,分支语句之嵌套语句
/**************************************
*输入某年某月某日,判断这一天是这一年的第几天?*
**************************************/
int y, m, d,sum,leap;
printf("输入年约日");
scanf_s("%d,%d,%d", &y, &m,&d);
switch (m)
{
case 1:sum = 0; break;
case 2:sum = 31; break;
case 3:sum = 59; break;
case 4:sum = 90; break;
case 5:sum = 120; break;
case 6:sum = 151; break;
case 7:sum = 181; break;
case 8:sum = 212; break;
case 9:sum = 243; break;
case 10:sum = 273; break;
case 11:sum = 304; break;
case 12:sum = 334; break;
default:
break;
}
sum = sum + d;
if (y % 4 == 0 && y % 100 != 0)
{
if (m>2)
{
leap = 1;
}
}
else
{
leap = 0;
}
if (leap)
{
sum++;
}
printf("%d", sum);
C语言中的循环结构程序,类似与下面的程序都叫循环结构程序:
一,while循环
二,do while循环
三,for循环
/*
把100-200之间的不能被3整除的数输出
*/
for (int i = 100; i < 200; i++)
{
if (i % 3 == 0)
{
continue;
}
printf("%d\n", i);
}
/*
斐波那契数 1 1 2 3 5 8 13
*/
int f1=1, f2=1;
int i;
for ( i = 0; i <= 20; i++)
{
printf("%d,%d\n", f1, f2);
f1 = f1 + f2;
f2 = f1 + f2;
}
/*
输出9*9的乘法表
*/
int i, j, sum;
for (i = 1; i < 10; i++)
{
for ( j =1; j < i+1; j++)
{
sum = i * j;
printf("%d*%d=%d,", i, j, sum);
}
printf("\n");
}
int i, j, sum;
for (i = 9; i >= 1; i--)
{
for (j = 1; j < i+1; j++)
{
sum = i * j;
printf("%d*%d=%d,", j, i, sum);
}
printf("\n");
}
四,switch判断
/*
输入某年某月某日,判断这一天是这一年的第几天?
*/
int y, m, d,sum,leap;
printf("输入年约日");
scanf_s("%d,%d,%d", &y, &m,&d);
switch (m)
{
case 1:sum = 0; break;
case 2:sum = 31; break;
case 3:sum = 59; break;
case 4:sum = 90; break;
case 5:sum = 120; break;
case 6:sum = 151; break;
case 7:sum = 181; break;
case 8:sum = 212; break;
case 9:sum = 243; break;
case 10:sum = 273; break;
case 11:sum = 304; break;
case 12:sum = 334; break;
default:
break;
}
sum = sum + d;
if (y % 4 == 0 && y % 100 != 0)
{
if (m>2)
{
leap = 1;
}
}
else
{
leap = 0;
}
if (leap)
{
sum++;
}
printf("%d", sum);
记录下练习题,方面自己过来复习!!!
#include #if 0
long factorial(int a);
void main()
{
int a= 5;
long result = factorial(a);
printf("%ld", result);
}
long factorial(int a)
{
long sum ;
if (a == 1 || a == 0)
{
sum = 1;
}
else
{
sum = a * factorial(a - 1);
}
return sum;
}
#endif // 0
#if 0
//一个一维数组存有10个学生的成绩,求出平均成绩
int average(int a[]);
void main()
{
int s;
int b[10] = { 87,56,86,56,87,57,86,68,85,78 };
s = average(b);
printf("%d", s);
}
int average(int a[])
{
int i = 0, sum = 1;
int aver = 1;
for (; i < 10; i++)
{
sum += a[i];
}
aver = sum / 10;
return aver;
}
#endif // 0
#if 0
//用户随意输入10次分数,求出平均分、最高分、最低分,并打印出来
double max = 0, min = 0;
void main()
{
double average(double array[], int n);
double ave=0,array[10];
int i;
for ( i = 0; i < 10; i++)
{
scanf_s("%lf", &array[i]);
}
ave = average(array, 10);
printf("average=%lf,max=%lf,min=%lf", ave, max, min);
}
double average(double array[], int n)
{
int i;
double ave,sum = array[0];
max = min = array[0];
for ( i = 0; i < n; i++)
{
if (array[i] > max)
{
max = array[i];
}
else if (array[i] < min)
{
min = array[i];
}
sum += array[i];
}
ave = sum / n;
return ave;
}
#endif // 0
#include #include #define M 10
void main()
{
int a = 23;
//printf("%d", a);
putchar("A");
char c;
printf("input a character\n");
c = getchar();
putchar(c);
int a = 15;
float b = 123.1234567;
double c = 12345678.1234567;
char d = "p";
printf("a=%d,%5d,%o,%x\n", a, a, a, a);
printf("b=%f,%lf,%5.4lf,%e\n,", b, b, b, b);
printf("c=%lf,%f,%8.6lf,", c, c, c);
printf("d=%c,%8c\n", d, d);
int a, b, c, temp;
printf("please is int:");
scanf_s("%d%d%d", &a, &b, &c);
if (a > b)
{
temp = a;
a = b;
b = temp;
}
if (a > c)
{
temp = a;
a = c;
c = temp;
}
if (b > c)
{
temp = b;
b = c;
c = temp;
}
printf("%d,%d,%d", a, b, c);
int i, j;
for (i = 1; i < 7; i++)
{
for (j = 7-i; j >=1; j--)
{
printf("*");
}
printf("\n");
}
double pi = 3.14159,area;
int r;
for (r = 1; r <= 10; r++)
{
area = pi * r*r;
if (area > 100)
{
break;
}
printf("%d,%lf\n", r, area);
}
int i, max, a[10];
printf("input is int:");
for (i = 0; i < 10; i++)
{
scanf_s("%d", &a[i]);
}
max = a[0];
for ( i = 1; i < 10; i++)
{
if (a[i] > max)
{
max = a[i];
}
}
printf("max is %d", max);
//斐波拉挈数
int i, a[20] = { 1,1 };
for (i = 2; i < 20; i++)
{
a[i] = a[i - 1] + a[i - 2];
}
for (i = 0; i < 20; i++)
{
printf("%d\n", a[i]);
}
//冒泡排序
int i, min, x,y,a[10] = { 3,6,7,4,9,1,5,8,0,2 };
for (i = 0; i < 10; i++)
{
for (x = 1; x < 10; x++)
{
min = a[i];
if (min > a[x])
{
y = min;
a[i] = a[x];
a[x] = y;
}
}
}
printf("%d", a[0]);
//求平均数
int i, j, sum = 0, arem, v[3];
int stu[5][3] = { {67,86,64},{76,78,89},{99,87,55},{76,65,98},{68,97,91} };
for (i = 0; i < 3; i++)//三门成绩
{
for (j = 0; j < 5; j++)//五个学生
{
sum += stu[j][i];
}
v[i] = sum / 5;
sum = 0;
}
arem = (v[0] + v[1] + v[2]) / 3;
printf("%d", arem);
//将一个二维数组a[2][3]转换成a[3][2]
int i, j, b[3][2];
int a[2][3] = { {1,2,3},{4,5,6} };
for (i = 0; i < 2; i++)
{
for (j = 0; j < 3; j++)
{
b[j][i] = a[i][j];
}
}
printf("%d,%d", b[0][0], b[0][1]);
//有一个3*4的矩阵,求出里面最大值,输出最大值和它的行号和列号
int i, j, max, row, low;
int a[3][4] = { {12,34,56}, {45,23,29},{65,67,42} };// a[2][1] = 67
max = a[0][0];
for ( i = 0; i < 3; i++)
{
for (j = 0; j < 4; j++)
{
if (a[i][j] >max)
{
max = a[i][j];
row = i;
low = j;
}
}
}
printf("%d,%d,%d", row ,low, max);
//键盘上输入9个数字,按九宫格填好,三行三列排布,输出数组中的第一行和第一列的数值
int i, j, a[3][3];
for ( i = 0; i < 3; i++)
{
for (j = 0; j < 3; j++)
{
scanf_s("%d", &a[i][j]);
}
printf("\n");
}
for (i = 0; i < 3; i++)
{
for (j = 0; j < 3; j++)
{
if (1 == i || 1 == j)
{
printf("%6d", a[i][j]);
}
else
{
printf("%6c",' ');
}
}
printf("\n");
}
//数组查找------------------二分法
int n, low, mid, hight, found;
int a[M] = { -10,-4,0,5,7,84,243,345,678,2345 };
printf("输入你要在数组中查找的数字:");
scanf_s("%d", &n);
low = 0;
hight = M - 1;
found = 0;
while (low <= hight)
{
mid = (low + hight) / 2;
if (n == a[mid])
{
found = 1;
}
if (n < a[mid])
{
hight = mid - 1;
}
else
{
low = mid + 1;
}
}
if (found == 1)
{
printf("你找的数字在数组中,下标为%d,值为%d", mid-1, n);
}
else
{
printf("你找的数字没有在数组中");
}
/****************************
*有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的排列。
**********************************/
int i, j, k;
for (i = 1; i < 5; i++)
{
for (j = 1; j < 5; j++)
{
for (k = 1; k < 5; k++)
{
if (i != k && i != j && j != k)
{
printf("%d%d%d\n", i, j, k);
}
}
}
}
/*
题目:企业发放的奖金根据利润提成。利润(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,求应发放奖金总数?
*/
//double i,d,s;
//printf("输入利润值:");
//scanf_s("%lf", &i);
//if (i<=100000)
//{
//d = 10;
//}
//if (i > 100000 && i<=200000)
//{
//d = 7.5;
//}
//if (i > 200000 && i <= 400000)
//{
//d = 5;
//}
//if (i > 400000 && i <= 600000)
//{
//d = 3;
//}
//if (i > 600000 && i <= 1000000)
//{
//d = 1.5;
//}
//if (i > 1000000)
//{
//d = 1;
//}
//s = i * (d / 100.0);
//printf("%lf", s);
/*
输入某年某月某日,判断这一天是这一年的第几天?
*/
int y, m, d,sum,leap;
printf("输入年约日");
scanf_s("%d,%d,%d", &y, &m,&d);
switch (m)
{
case 1:sum = 0; break;
case 2:sum = 31; break;
case 3:sum = 59; break;
case 4:sum = 90; break;
case 5:sum = 120; break;
case 6:sum = 151; break;
case 7:sum = 181; break;
case 8:sum = 212; break;
case 9:sum = 243; break;
case 10:sum = 273; break;
case 11:sum = 304; break;
case 12:sum = 334; break;
default:
break;
}
sum = sum + d;
if (y % 4 == 0 && y % 100 != 0)
{
if (m>2)
{
leap = 1;
}
}
else
{
leap = 0;
}
if (leap)
{
sum++;
}
printf("%d", sum);
/*
把100-200之间的不能被3整除的数输出
*/
for (int i = 100; i < 200; i++)
{
if (i % 3 == 0)
{
continue;
}
printf("%d\n", i);
}
/*
求pi的值
pi/4 = 1-1/3+1/5-1/7+1/9...
*/
int s;
double n, t, pi;
s = 1; n = 1.0; pi = 0; t = 1;
while (fabs(t) > 1e-20)
{
pi = pi + t;
n +=2;
s = -s;
t = s / n;
}
pi = pi * 4;
printf("%10.20lf", pi);
/*
斐波那契数 1 1 2 3 5 8 13
*/
int f1=1, f2=1;
int i;
for ( i = 0; i <= 20; i++)
{
printf("%d,%d\n", f1, f2);
f1 = f1 + f2;
f2 = f1 + f2;
}
/*
输出9*9的乘法表
*/
int i, j, sum;
for (i = 1; i < 10; i++)
{
for ( j =1; j < i+1; j++)
{
sum = i * j;
printf("%d*%d=%d,", i, j, sum);
}
printf("\n");
}
int i, j, sum;
for (i = 9; i >= 1; i--)
{
for (j = 1; j < i+1; j++)
{
sum = i * j;
printf("%d*%d=%d,", j, i, sum);
}
printf("\n");
}
/*
输出国家象棋棋盘
*/
int i, j;
for (i = 0; i < 8; i++)
{
for (j = 0; j < 8; j++)
if ((i + j) % 2 == 0)
printf("%c", 23);
else
printf(" ");
printf("\n");
}