1.调整数组使得奇数全部位于偶数前面
#include<stdio.h>
void move(int arr[], int sz)
{
int i = 0;
int left = 0;
int right = sz - 1;
while (left < right)
{
while (arr[left] % 2 != 0 && left < right)
{
left++;
break;
}
while (arr[right] % 2 == 0 && left < right)
{
right--;
break;
}
if (left < right)
{
int tmp = arr[left];
arr[left] = arr[right];
arr[right] = tmp;
}
}
}
int main()
{
int arr[] = { 1,2,3,4,5,6,7,8,9 };
int sz = sizeof(arr) / sizeof(arr[0]);
move(arr, sz);
int i = 0;
for (i = 0; i < sz; i++)
{
printf("%d ", arr[i]);
}
system("pause");
return 0;
}
2.
1.
在屏幕上打印杨辉三角。
1
1 1
1 2 1
1 3 3 1
。。。。。
#include<stdio.h>
#include<stdlib.h>
int main()
{
int arr[10][10] = { 0 };
int i = 0;
for (i = 0; i < 10; i++)
{
int j = 0;
for (j = 0; j <= i; j++)
{
if (j == 0 || i == j)
{
arr[i][j] = 1;
}
else
{
arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];
}
printf("%-3d ", arr[i][j]);
}
printf("\n");
}
system("pause");
return 0;
}
3.
//题目内容:
//日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯的一个。
//以下为4个嫌疑犯的供词 :
//A说:不是我。 killer != 'a';
//B说:是C。 killer == 'c';
//C说:是D。 killer == 'd';
//D说:C在胡说 killer != 'd';
//已知3个人说了真话,1个人说的是假话。
//现在请根据这些信息,写一个程序来确定到底谁是凶手
#include<stdio.h>
int main()
{
int killer = 0;
for (killer = 'a'; killer <= 'd'; killer++)
{
if ((killer != 'a') + (killer == 'c') + (killer == 'd') + (killer != 'd') == 3)
{
printf("凶手是%c\n", killer);
}
}
system("pause");
return 0;
}
4.
//描述
//不使用累计乘法的基础上,通过移位运算( << )实现2的n次方的计算。
//数据范围:0 \le n \le 31 \0≤n≤31
//输入描述:
//一行输入整数n(0 <= n < 31)。
// 输出描述:
// 输出对应的2的n次方的结果
#include<stdio.h>
int main()
{
int n = 0;
scanf("%d", &n);
int fac = 0;
fac = 1 << n;
printf("%d\n", fac);
system("pause");
return 0;
}
5.
公务员面试现场打分。有7位考官,从键盘输入若干组成绩,每组7个分数(百分制),去掉一个最高分和一个最低分,输出每组的平均成绩。
(注:本题有多组输入)
输入描述:
每一行,输入7个整数(0~100),代表7个成绩,用空格分隔。
输出描述:
每一行,输出去掉最高分和最低分的平均成绩,小数点后保留2位,每行输出后换行。
#include<stdio.h>
int main()
{
int score = 0;
int max = 0;
int min = 100;
int sum = 0;
int count = 0;
while(scanf("%d", &score) != EOF)
{
if(max < score)
{
max = score;
}
if(min > score)
{
min = score;
}
sum += score;
count++;
if(count == 7)
{
sum -= (max + min);
printf("%.2f\n", sum/5.0);
count = 0;
sum = 0;
max = 0;
min = 100;
}
}
return 0;
}
(注意:实现多组输入就要使得每组成绩输出完成之后变量重置,以免下一次收到影响)