1.编写一个程序,输入两个包含5个元素的数组,先将两个数组升序排序,然后将这两个数组合并成一个升序数组
int c[5] ={0}, d[5] = {0}, e[10] = {0};
printf("请输入一个包含5个元素的数组:");
for (int i =0; i < 5; i++) {
scanf("%d",&c[i]);
}
printf("请再输入一个包含5个元素的数组:");
for (int j =0; j < 5; j++) {
scanf("%d", &d[j]);
}
for (int i =0; i < 4; i++) {
for (int j =0; j < 4 - i; j++) {
int temp = 0;
if (c[j] > c[j + 1]) {
temp = c[j];
c[j] = c[j + 1];
c[j + 1] = temp;
}
}
}
for (int i =0; i < 5; i++) {
printf("%d ",c[i]);
}
printf("\n");
for (int l =0; l < 4; l++) {
for (int m =0; m < 4 - l; m++) {
int temp1 = 0;
if (d[m] > d[m + 1]) {
temp1 = d[m];
d[m] = d[m + 1];
d[m + 1] = temp1;
}
}
}
for (int l =0; l < 5; l++) {
printf("%d ", d[l]);
}
printf("\n");
for (int i =0; i < 10; i++) {
if (i < 5) {
e[i] = c[i];
} else {
e[i] = d[i - 5];
}
}
for (int i =0; i < 10; i++) {
printf("%d ", e[i]);
}
printf("\n");
for (int i =0; i < 9; i++) {
for (int j = 0; j < 10 - 1 - i; j++) {
int temp3 = 0;
if (e[j] > e[j + 1]) {
temp3 = e[j + 1];
e[j + 1] = e[j];
e[j] = temp3;
}
}
}
for (int i =0; i < 10; i++) {
printf("%d ", e[i]);
}
printf("\n");
2.编写整型值数组排序程序(冒泡排序、选择排序、快速排序--升序) int a[] ={3,-9,32,77,63,-24,14,0,21,45};
选择排序
int a[] ={3, -9, 32, 77, 63, -24, 14, 0, 21, 45};
for (int i =0; i < 9; i++) {
int min = i;
for (int j = i + 1; j < 10; j++) {
if (a[min] > a[j]) {
min = j;
}
}
if (min != i) {
int temp = a[i];
a[i] = a[min];
a[min] = temp;
}
printf("%d ", a[i]);
}
printf("\n");
3. 输入两个数,求最大公约数和最小公倍数。(用两种方法:辗转相除法和普通方法)
//辗转相除法
int num1 =1, num2 = 1;
int gcd = 1,a = 1;
printf("请输入两个数:");
scanf("%d%d", &num1, &num2);
while (1){
a = num1 % num2;
if (a == 0) {
gcd = num2;
break;
}
num1 = num2;
num2 = a;
}
printf("最大公约数是:%d\n最小公倍数是:%d\n", gcd, num1 * num2 / gcd);
//普通方法
int num1 =0, num2 =0;
printf("请输入两个数:");
scanf("%d%d", &num1, &num2);
for (int gcd= num1 < num2 ? num1 : num2; gcd >= 1; gcd--) {
if (num1 % gcd == 0 && num2 % gcd == 0) {
printf("最大公约数是:%d\n最小公倍数是:%d\n", gcd, (num1 * num2) / gcd );
break;
}
}
4.输入三个数,用两种方法打印出中间值(即第二大值)提示:第一种,先求最大最小;第二种,只使用条件运算符
第二种
float h1 =0, h2 = 0, h3 = 0;
float max =0, min = 0, sum = 0, mid = 0;
printf("请输入三个数:");
scanf("%f%f%f", &h1, &h2, &h3);
max = h1>= h2 ? h1 : h2;
max = max>= h3 ? max : h3;
min = h1<= h2 ? h1 : h2;
min = min<= h3 ? min : h3;
sum = h1 +h2 + h3;
mid = sum -max - min;
printf("mid= %.2f\n", mid);
第一种
float h1 =0, h2 = 0, h3 = 0;
printf("请输入三个数:");
scanf("%f%f%f", &h1, &h2, &h3);
if ((h1 >h2 && h1 < h3) || (h1 < h2 && h1 > h3)){
printf("%.2f为中间数\n", h1);
} else if((h2 > h1 && h2 < h3) || (h2 < h1 && h2> h3 )){
printf("%.2f为中间数\n", h2);
} else{
printf("%.2f为中间数\n", h3);
}
5.编制一个完成两个数四则运算程序。如:用户输入34+56则输出结果为90.00,要求运算结果保留2位有效小数,用户输入时将2个运算数以及运算符都输入,根据运算符求结果
//方法1
float e1 =0, e2 = 0;
char f1 ='+', f2 = '-', f3 = '*', f4 = '%';
printf("请输入一个式子:");
scanf("%f%c%f", &e1, &f4, &e2);
if (f4 ==f1) {
printf("运算结果为:%f\n", e1 + e2);
} else if(f4 == f2){
printf("运算结果为:%f\n", e1 - e2);
} else if(f4 == f3){
printf("运算结果为:%f\n", e1 * e2);
} else{
printf("运算结果为:%f\n", e1 / e2);
}
//方法2
float e1 =0, e2 = 0, result = 0;
charg;
printf("请输入式子:");
scanf("%f%c&f", &e1, &g, &e2);
switch (g){
case '+':
result = e1 + e2;
break;
case '-':
result = e1 - e2;
break;
case '*':
result = e1 * e2;
break;
case '/':
result = e1 / e2;
break;
default:
break;
}
printf("运算结果为:%.2f\n", e1 + e2);
6.输入生日,输出年龄(周岁)和星座
int c1 = 0,c2 = 0, c3 = 0;
int age =0;
printf("输入你的生日:");
scanf("%d.%d.%d", &c1, &c2, &c3);
age = 2015 -c1;
printf("%d周岁\n", age);
if ((c2 == 3&& c3 >=21) || (c2 == 4 && c3 <= 19) ){
printf("白羊座\n");
} else if((c2 == 4 && c3 >= 20) || (c2 == 5 && c3 <=20)) {
printf("金牛座\n");
} else if((c2 == 5 && c3 >= 21) || (c2 == 6 && c3 <=21)) {
printf("双子座\n");
} else if((c2 == 6 && c3 >= 22) || (c2 == 7 && c3 <=22)) {
printf("巨蟹座\n");
} else if((c2 == 7 && c3 >= 23) || (c2 == 8 && c3 <=22)) {
printf("狮子座\n");
} else if((c2 == 8 && c3 >= 23) || (c2 == 9 && c3 <=22)) {
printf("处女座\n");
} else if((c2 == 9 && c3 >= 23) || (c2 == 10 && c3 <=23)) {
printf("天秤座\n");
} else if((c2 == 10 && c3 >= 24) || (c2 == 11 && c3 <=22)) {
printf("天蝎座\n");
} else if((c2 == 11 && c3 >= 23) || (c2 == 12 && c3 <=21)) {
printf("射手座\n");
} else if((c2 == 12 && c3 >= 22) || (c2 == 1 && c3 <=19)) {
printf("摩羯座\n");
} else if((c2 == 1 && c3 >= 20) || (c2 == 2 && c3 <=18)) {
printf("水瓶座\n");
} else{
printf("双鱼座\n");
7.查找ASCII码表,分别用%d输出字符,用%c输出整数
int e =0;
char g ='a';
printf("请输入一个字符:\n");
scanf("%c",&g);
printf("转化为整数:%d\n", g);
printf("请输入一个整数:");
scanf("%d",&e);
printf("转换为字符:%c\n",e);
//
int e =66;
char g ='a';
printf("转化为整数:%d\n", g);
printf("转化为字符:%c\n", e);
2.编写整型值数组排序程序(冒泡排序、选择排序、快速排序--升序) int a[] ={3,-9,32,77,63,-24,14,0,21,45};
选择排序
3. 输入两个数,求最大公约数和最小公倍数。(用两种方法:辗转相除法和普通方法)
4.输入三个数,用两种方法打印出中间值(即第二大值)提示:第一种,先求最大最小;第二种,只使用条件运算符
第二种
5.编制一个完成两个数四则运算程序。如:用户输入34+56则输出结果为90.00,要求运算结果保留2位有效小数,用户输入时将2个运算数以及运算符都输入,根据运算符求结果
//方法1
//方法2
6.输入生日,输出年龄(周岁)和星座
7.查找ASCII码表,分别用%d输出字符,用%c输出整数
//