1.
#include <stdio.h>
#include <stdlib.h>
#define ARR_SIZE 40
int main()
{
float score[ARR_SIZE], maxScore;
int n,i;
long num[ARR_SIZE],maxNum;
printf("please enter total number :");
scanf("%d",&n);
printf("please enter the number and score:\n");
for (i=0;i<n;i++)
{
scanf("%ld %f",&num[i],&score[i]);
}
maxScore=score[0];
maxNum=num[0];
for (i=1;i<n;i++)
{
if (score[i]>maxScore){
maxScore=score[i];
maxNum=num[i];
}
}
printf("maxScore=%.0f,maxNum=%ld\n",maxScore,maxNum);
return 0;
}
2.
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 250
#define Sentinel 0
int readIntArray(int array[])
{
int num,count=0;
printf("请输入数据(输入%d结束):\n",Sentinel);
while (1)
{
scanf("%d",&num);
if (num==Sentinel){
break;}
if (count<MAX_SIZE){
array[count++]=num;}
else {
printf("数组容量不足,无法继续存储!\n");
break;
}
}
return count;
}
void reverseArray(int array[],int n)
{
for (int i=0,j=n-1;i<j;i++,j--)
{
int temp=array[i];
array[i]= array[j];
array[j]=temp;
}
}
void printArray (int array[],int n)
{
printf("逆序排列后的数组:\n");
int i;
for (int i=0;i<n;i++)
{
printf("%d\n",array[i]);
}
}
int main()
{
int array[MAX_SIZE];
int len=readIntArray(array);
if (len==0)
{
printf("未输入有效数据!\n");
return 0;
}
reverseArray(array,len);
printArray(array,len);
return 0;
}
3.1
#include <stdio.h>
int sequentialSearch(int arr[], int n, int x) {
for (int i = 0; i < n; i++) {
if (arr[i] == x) {
return i;
}
}
return -1;
}
int main() {
int arr[] = {2, 5, 8, 12, 16, 23, 38, 56, 72, 91};
int n = sizeof(arr) / sizeof(arr[0]);
int target = 23;
int index = sequentialSearch(arr, n, target);
printf("顺序查找结果:");
if (index != -1) {
printf("元素%d在数组下标%d处\n", target, index);
} else {
printf("元素%d不在数组中\n", target);
}
return 0;
}
3.2
#include <stdio.h>
int binarySearch(int arr[], int n, int x) {
int left = 0;
int right = n - 1;
while (left <= right) {
int mid = (left + right) / 2;
if (arr[mid] == x) {
return mid;
} else if (arr[mid] < x) {
left = mid + 1;
} else {
right = mid - 1;
}
}
return -1;
}
int main() {
int arr[] = {2, 5, 8, 12, 16, 23, 38, 56, 72, 91};
int n = sizeof(arr) / sizeof(arr[0]);
int target = 23;
int index = binarySearch(arr, n, target);
printf("二分查找结果:");
if (index != -1) {
printf("元素%d在数组下标%d处\n", target, index);
} else {
printf("元素%d不在数组中\n", target);
}
return 0;
}
4.1 选择排序
#include <stdio.h>
#include <stdlib.h>
#define N 40
void Sort(int a[],int n);
int main()
{
int num[N],k;
printf("请输入数字个数:");
scanf("%d",&k);
for (int i=0;i<k;i++)
{
scanf("%d",&num[i]);
}
Sort(num,k);
for (int i=0;i<k;i++)
{
printf("%d ",num[i]);
}
return 0;
}
void Sort(int a[],int n)
{
for (int i=0;i<n-1;i++)
{
for (int j=i+1;j<n;j++)
{
if (a[j]<a[i])
{
int t=a[j];
a[j]=a[i];
a[i]=t;
}
}
}
}
4.2 交换排序
#include <stdio.h>
#include <stdlib.h>
#define N 40
void bubble_sort(int a[],int n);
int main()
{
int num[N],k;
printf("请输入数字个数:");
scanf("%d",&k);
for (int i=0;i<k;i++)
{
scanf("%d",&num[i]);
}
bubble_sort(num,k);
for (int i=0;i<k;i++)
{
printf("%d ",num[i]);
}
return 0;
}
void bubble_sort(int a[],int n)
{
for (int i=0;i<n-1;i++)
{
for (int j=0;j<n-i-1;j++)
{
if (a[j]>a[j+1])
{
int t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
}
4.3 冒泡排序
#include <stdio.h>
#include <stdlib.h>
#define N 40
void Sort(int a[],int n);
int main()
{
int num[N],k;
printf("请输入数字个数:");
scanf("%d",&k);
for (int i=0;i<k;i++)
{
scanf("%d",&num[i]);
}
Sort(num,k);
for (int i=0;i<k;i++)
{
printf("%d ",num[i]);
}
return 0;
}
void Sort(int a[],int n)
{
for (int i=0;i<n-1;i++)
{
int k=i;
for (int j=i+1;j<n;j++)
{
if (a[k]<a[j])
{
k=j;
}
}
if (k!=i)
{
int t=a[k];
a[k]=a[i];
a[i]=t;
}
}
}
4.4 插入排序
#include <stdio.h>
#include <stdlib.h>
#define N 40
void SortIntegerArray(int array[],int n);
int main()
{
int num[N],k;
printf("请输入数字个数:");
scanf("%d",&k);
for (int i=0;i<k;i++)
{
scanf("%d",&num[i]);
}
SortIntegerArray(num,k);
for (int i=0;i<k;i++)
{
printf("%d ",num[i]);
}
return 0;
}
void SortIntegerArray(int array[],int n)
{
int i,j,temp;
for (i=0;i<n;i++)
{
temp=array[i];
for (j=i-1;j>=0&&temp<array[j];j--)
{
array[j+1]=array[j];
}
array[j+1]=temp;
}
}
5.1
#include <stdio.h>
#include <stdlib.h>
#define N 100
void Insert(int a[],int n,int x);
int main()
{
int a[N],n,x;
printf("Please enter total number:\n");
scanf("%d",&n);
printf("Input the sorted array:\n");
for (int i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
printf("Input x for insertion:\n");
scanf("%d",&x);
Insert(a,n,x);
printf("The new array :\n");
for (int i=0;i<=n;i++)
{
printf("%d,",a[i]);
}
return 0;
}
void Insert(int a[],int n,int x)
{
int i;
for (i=n-1;i>=0&&x<a[i];i--)
{
a[i+1]=a[i];
}
a[i+1]=x;
}
5.2
#include <stdio.h>
#include <stdlib.h>
#define N 40
void SortIntegerArray(int array[],int n);
int main()
{
int num[N],k;
printf("请输入数字个数:");
scanf("%d",&k);
for (int i=0;i<k;i++)
{
scanf("%d",&num[i]);
}
SortIntegerArray(num,k);
for (int i=0;i<k;i++)
{
printf("%d ",num[i]);
}
return 0;
}
void SortIntegerArray(int array[],int n)
{
int i,j,temp;
for (i=0;i<n;i++)
{
temp=array[i];
for (j=i-1;j>=0&&temp<array[j];j--)
{
array[j+1]=array[j];
}
array[j+1]=temp;
}
}
6.
#include <stdio.h>
#include <stdlib.h>
#define N 100
int Delete (int a[],int n,int x);
int main()
{
int a[N],n,x;
printf("Please enter total number : \n");
scanf("%d",&n);
printf("Input the sorted array : \n");
for (int i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
printf("Input x for delete : \n");
scanf("%d",&x);
int m=Delete(a,n,x);
printf("The new array : \n");
for (int i=0;i<m;i++)
{
printf("%d, ",a[i]);
}
return 0;
}
int Delete (int a[],int n,int x)
{
int p,i;
p=0;
while (x!=a[p]&&p<n)
p++;
if (p==n) return n;
for (i=p+1;i<n;i++)
a[i-1]=a[i];
return n-1;
}
148

被折叠的 条评论
为什么被折叠?



