1.小乐乐查找数字
代码如下:
#include <stdio.h>
int main()
{
int n = 0;
scanf("%d", &n);
int i = 0;
int arr[101] = { 0 };
for (i = 0; i < n; i++)
{
scanf("%d ", &arr[i]);
}
int k = 0;
scanf("%d", &k);
int count = 0;
for (i = 0; i < n; i++)
{
if (arr[i] == k)
{
count++;
}
}
printf("%d\n", count);
return 0;
}
`
2.有序序列插入一个整数
代码如下:
#include <stdio.h>
int main()
{
int n = 0;
int a[20] = { 0 };
int m = 0;
int i = 0;
//输入第一行
scanf("%d", &n);
//循环输入第二行
for (i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
//第三行
scanf("%d", &m);
//从后面开始找如果找到比m大的继续往前找
for (i = n - 1; i >= 0; i--) {
if (a[i] > m) {
a[i + 1] = a[i];
}
else
{
a[i + 1] = m; //如果前一项比m小,那么m就放在这里
break;
}
}
if (i < 0) //还有一种情况就是一直找到最前面发现m都比其他的小,那么把第一个元素放m
{
a[0] = m;
}
for (int i = 0; i < n + 1; i++) { //打印输出排序好的数组
printf("%d ", a[i]);
}
return 0;
}
3.序列中整数去重
代码如下:
#include <stdio.h>
int main()
{
int n = 0;
scanf("%d", &n);
int arr[5000] = { 0 };
int i = 0;
for (i = 0; i < n; i++)
{
scanf("%d", &arr[i]);
}
for (i = 0; i < n; i++)
{
int j = 0;
for (j = i + 1; j < n; j++)
{
if (arr[i]== arr[j])
{
arr[j] = 0; //把后边重复的元素为0。
}
}
}
for (i = 0; i < n; i++)
{
if (arr[i] != 0)
{
printf("%d ", arr[i]);
}
}
return 0;
}
4.序列中删除指定数字
代码如下:
#include <stdio.h>
int main()
{
int n = 0;
scanf("%d", &n);
int arr[50] = { 0 };
int i = 0;
for (i = 0; i <n; i++)//遍历,打印每一个元素
{
scanf("%d ", &arr[i]);
}
int del = 0;
scanf("%d", &del);
for (i = 0; i < n; i++)
{
if (arr[i] == del) //将arr中等于del的整数都换成0
{
arr[i] = 0;
}
}
for (i = 0;i < n; i++) //打印
{
if (arr[i]) //碰到0不打印直接跳过
{
printf("%d ", arr[i]);
}
}
return 0;
}
5.逆序输出
代码如下:
#inclue <stdio.h>
void reverse(int arr[], int sz)
{
int left = 0;
int right = sz - 1;
while (left < right)
{
int tmp = arr[left];
arr[left] = arr[right];
arr[right] = tmp;
left++;
right--;
}
}
int main()
{
int i = 0;
int arr[10] = { 0 };
int sz = sizeof(arr) / sizeof(arr[0]);
for (i = 0; i <10; i++)
{
scanf("%d ", &arr[i]);
}
//print(arr, sz); //打印原来
reverse(arr, sz);
for (i = 0; i < sz; i++)
{
printf("%d ", arr[i]);
}
//print(arr, sz); //打印逆序
return 0;
}
6.争夺前五名
代码如下:
#include <stdio.h>
int main()
{
int n = 0;
scanf("%d", &n);
int i = 0;
int arr[50]={0};
for(i=0; i<n; i++)
{
scanf("%d", &arr[i]);
}
for(i=0;i<n-1;i++)
{
int j=0;
for(j=0;j<n-i-1;j++)
{
if(arr[j]<arr[j+1])
{
int tmp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=tmp; //先冒泡排序,在遍历数组,打印
}
}
}
for(i=0;i<5;i++)
{
printf("%d ",arr[i]);
}
return 0;
}
7.有序序列合并
代码如下:
#include <stdio.h>
int main()
{
int arr1[1000] = { 0 };
int arr2[1000] = { 0 };
int n = 0;
int m = 0;
scanf("%d %d\n", &n, &m);
int i = 0;
for (i = 0; i < n; i++)
{
scanf("%d", &arr1[i]);
}
for (i = 0; i < m; i++)
{ //1 3 5 7 9 j
scanf("%d", &arr2[i]); //2 4 6 8 9 10 k
}
int j = 0;
int k = 0;
while (j < n && k < m)
{
if (arr1[j] < arr2[k])
{
printf("%d ", arr1[j]);
j++;
}
else
{
printf("%d ", arr2[k]);
k++;
}
}
//要判断哪一个数组先打印完
if (j < n) //遍历,剩余元素直接打印
{
for (; j < n; j++)
{
printf("%d ", arr1[j]);
}
}
else
{
for (; k < m; k++)
{
printf("%d ", arr2[k]);
}
}
return 0;
}
8. 筛选法求素数
代码如下:
#include <stdio.h>
int main()
{
int n = 0;
int count = 0;
int arr[100] = { 0 };
while (scanf("%d", &n) != EOF)
{
int i = 0;
for (i = 2; i <=n; i++)
{
arr[i] = i;
}
//开始筛选
for (i = 2; i <=n; i++)
{
int j = 2;
for (j = 2; j < i; j++)
{
if (i % j == 0)
{
arr[i] = 0;
}
}
}
for (i = 2; i <=n; i++)
{
if (arr[i] != 0)
{
printf("%d ", arr[i]);
}
else
{
count++;
}
}
printf("\n");
printf("%d", count);
}
return 0;
}
9. 小乐乐查找数字
代码如下:
#include <stdio.h>
int main()
{
int n = 0;
scanf("%d", &n);
int i = 0;
int arr[101] = { 0 };
for (i = 0; i < n; i++)
{
scanf("%d ", &arr[i]);
}
int k = 0;
scanf("%d", &k);
int count = 0;
for (i = 0; i < n; i++)
{
if (arr[i] == k)
{
count++;
}
}
printf("%d\n", count);
return 0;
}
10.有序序列判断
代码如下:
#include<stdio.h>
int main()
{
int n = 0;
scanf("%d", &n);
int i = 0;
int tmp1 = 0;
int tmp2 = 0;
int arr[55] = { 0 };
for (i = 0; i < n; i++)
{
scanf("%d ", &arr[i]);
}
for (i = 0; i < n; i++)
{
if(i>0)
{
if (arr[i] > arr[i - 1])
{
tmp1 = 1;
}
else
{
tmp2 = 1;
}
}
}
if (tmp1+tmp2 == 1) //升序,降序只能一种,所以是1。
{
printf("sorted");
}
else
printf("unsorted");
return 0;
}