欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

顺序查找/二分查找/冒泡排序/打印金字塔/打印乘法表

程序员文章站 2024-02-24 14:35:16
...

顺序查找

#include<stdio.h>

int seqSearch(int arr[],int arrLen ,int val){
	int i;
	for(i=0;i<arrLen;i++){
		if(arr[i]==val){
			return i;
		}
	}
	return -1;
}

void main(){
	int arr[]={23,1,34,89,101};
	int arrLen = sizeof(arr)/sizeof(int);
	int index = seqSearch(arr,arrLen,101);
	if(index!=-1){
		printf("找到下标为%d",index);
	}
	else 
		printf("没有找到!");
	getchar();
}

对有序数组进行二分查找

#include <stdio.h>

int binarySearch(int arr[],int leftIndex,int rightIndex,int findVal){
	if (leftIndex > rightIndex)
		return -1;
	int midIndex = (leftIndex + rightIndex)/2;
	int midVal = arr[midIndex];
	if(midVal > findVal)
		binarySearch(arr,leftIndex,midIndex-1,findVal);
	else if(midVal < findVal)
		binarySearch(arr,midIndex-1,rightIndex,findVal);
	else 
		return midIndex;
}

void main(){
	int arr[] = {1,8,10,89,1000,1234};
	int arrLen = sizeof(arr)/sizeof(int);
	int index = binarySearch(arr,0,arrLen-1,1000);
	if(index != -1)
		printf("找到index = %d",index);
	else 
		printf("没找到");
	getchar();

}

嵌套循环求总分平均分

#include <stdio.h>
void main()
{
	int stuNum = 5;
	int classNum = 3;
	double classTotalScore = 0.0;
	double score = 0.0;
	int i,j;
	double AllclassTotalScore = 0.0;
	for(i=1;i<=classNum;i++){
		classTotalScore = 0.0;
		for(j=1;j<=stuNum;j++){
			printf("\n请输入第%d班级的第%d个学生的成绩 ",i,j);
			scanf("%lf",&score);
			classTotalScore += score;
		}
		AllclassTotalScore += classTotalScore;
		printf("\n 第%d个班级的平均分 = %.2f",i,classTotalScore/stuNum);
	}
	printf("\n 三个班级的总成绩为%.2f ",AllclassTotalScore);
	printf("\n 所有班级的平均分为 %.2f",AllclassTotalScore/(stuNum * classNum));
	getchar();
	getchar();
}

九九乘法表

#include <stdio.h>

void main(){
	int i,j;
	for(i=1;i<=9;i++){
		for(j=1;j<=i;j++)
		printf("%d * %d = %d   ",i,j,i*j);	
	printf("\n");
	}
	getchar();
}

打印实心金字塔

#include<stdio.h>

void main(){
	int i,j,k,TotalLevel;
	printf("请输入金字塔的层数");
	scanf("%d",&TotalLevel);
	for(i=1;i<=TotalLevel;i++){
		for(k=1;k<=TotalLevel-i;k++){//控制层数
			printf(" ");
		}
			for(j=1;j<=(i*2)-1;j++){//每行输出若干个*
			printf("*");
		}
		printf("\n");
	}
	getchar();
	getchar();
}

打印空心金字塔

	int i,j,k,TotalLevel;
	scanf("%d",&TotalLevel);
	for(i=1;i<=TotalLevel;i++){
		for(k=1;k<=TotalLevel-i;k++){//控制层数
			printf(" ");
		}
			for(j=1;j<=(i*2)-1;j++){//每行输出若干个*
				if(j==1||j==(i*2)-1||i==TotalLevel)//每行第一个和最后一个以及最后一层的全部输出*
					printf("*");
				else 
					printf(" ");
		}
		printf("\n");
	}
	getchar();
	getchar();
}

冒泡排序

#include<stdio.h>

void main(){
	int i,j,temp;
	int arr[]={98,45,100,20,40,55,78};
	int arrLen = sizeof(arr)/sizeof(int);
	for(i=0;i<arrLen-1;i++){
		for(j=0;j<arrLen-1;j++){
			if(arr[j]>arr[j+1]){
				temp = arr[j];
				arr[j] = arr[j+1];
				arr[j+1] = temp;
			}
		}
	}
	for(j=0;j<=arrLen-1;j++)
	printf("%d  ",arr[j]);
	getchar();
}
相关标签: c语言