文章目录
1、输入三个数并从小到大输出
#include<stdio.h>
void swap(int *p1,int *p2);
int main(){
float a,b,c,temp;
printf("please enter a,b,c");
scanf("%f,%f,%f",&a,&b,&c);
//方法一:
if(a>b){
temp=a;
a=b;
b=temp;
}
if(a>c){
temp=a;
a=c;
c=temp;
}
if(b>c){
temp=b;
b=c;
c=temp;
}
//方法二:
// if(a>b) swap(&a,&b);
// if(a>c) swap(&a,&c);
// if(b>c) swap(&b,&c);
printf("%.2f,%.2f,%.2f\n",a,b,c);
return 0;
}
void swap(int *p1,int *p2){
int t;
t=*p1;
*p1=*p2;
*p2=t;
}
a=eval(input("a:"))
b=eval(input("b:"))
c=eval(input("c:"))
# 方法一:
def swap(a,b):
return b,a
if(a>b):
a,b=swap(a,b)
if(a>c):
a,c=swap(a,c)
if(b>c):
b,c=swap(b,c)
print(a,b,c)
# 方法二:
# if(a>b):
# t=a
# a=b
# b=t
# if(a>c):
# t=a
# a=c
# c=t
# if(b>c):
# t=b
# b=c
# c=t
# print(a,b,c)
# 方法三:
# list=[a,b,c]
# list.sort()
# for i in list:
# print(i)
2、求100-200全部素数
#include <stdio.h>
#include <math.h>
int main(){
int m,i,k,n=0;
for(m=101;m<=200;m+=2){
k=sqrt(m);
for(i=2;i<=k;i++){
if(m%i==0) break;
}
if(i>=k+1){
printf("%d ",m);
n=n+1;
}
if(n%10==0) printf("\n");
}
printf("\n");
return 0;
}
import math
for i in range(101,200,2):
for j in range(2,round(math.sqrt(i)+1)):#round表示四舍五入保留整数,python自带函数
if i%j==0:
break;
else:#若循环正常结束执行else
print(i,end=" ")
3、打擂算法
int a[10];
int max,min,i;
max=min=a[0];
for(i=1;i<10;i++){
if(a[i]>max)
max=a[i];
else if(a[i]<min)
min=a[i];
}
printf("max=%d,min=%d\n",max,min );
12、冒泡排序
#include <studio.h>
//从小到大排序
void bubble(int a[]/*数组*/,n/*数组元素个数*/){
int i,j,t;
for(i=0;i<n-1;i++){
for(j=0;j<n-1-i;j++){
if(a[j]>a[j+1]){
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
}
def bubble(a,n):
for i in range(0,n-1):
for j in range(0,n-1-i):
if a[j]>a[j+1]:
t=a[j]
a[j]=a[j+1]
a[j+1]=t
a=[]
n=eval(input("n:"))
for i in range(n):
a.append(eval(input()))
bubble(a,len(a))
for i in a:
print(i,end=" ")
4、简单选择排序
#include <studio.h>
void select (int a[],n){
int i,j,k,t;
for(i=0;i<n-1;i++){
k=i;
for(j=i+1;j<n;j++){
if(a[j]<a[k])
k=j;
}
if(k!=i){
t=a[i];
a[i]=a[k];
a[k]=t;
}
}
}
def select(a,n):
for i in range(0,n-1):
k=i
for j in range(i+1,n):
if a[j]<a[k]:
k=j
if k!=i:
t=a[k]
a[k]=a[i]
a[i]=t
a=[]
n=eval(input("n:"))
for i in range(n):
a.append(eval(input()))
select(a,len(a))
for i in a:
print(i,end=" ")
5、二分法(折半)查找算法
#include <studio.h>
void halve(int a[],int n,int x){
int left=0,right=n-1,mid;
while(left<=right){
mid=(left+right)/2;
if(a[mid]==x){
printf("找到了,在第%d位\n",mid+1);
break;
}else if(a[mid]<x)
left=mid+1;
else
right=mid-1;
}
if(left>right)
printf("数组中不存在要找的数!");
}
def halve(a,n,x):
left=0
right=n-1
while left<=right:
mid=int((left+right)/2)
if a[mid]==x:
print("要找的数在第%d位"%(mid+1))
break
elif a[mid]<x:
left=mid+1
else:
right=mid-1
if left>right:
print("数组中没有要找的数!")
6、数组插入
#include <studio.h>
void insert(int a[],n,num/*需要插入元素*/){
int i,j,index=n;
for(i=0;i<n;i++){
if(num<a[i]){
index=i;
break;
}
}
for(j=n-1;j>=index;j--){
a[j+1]=a[j];
}
a[index]=num;
}
def insert(a,n,num):
for i in range(0,n):
if a[i]>=num:
k=i
break
for i in range(n-1,k-1,-1):
a[i+1]=a[i]
a[k]=num
7、数组删除
#include <studio.h>
void delete(int a[],n,num/*需要删除的元素*/){
int i,j;
for(i=0;i<n;i++){
if(num==a[i]){
for(j=i;j<n;j++)
a[j]=a[j+1];
n=n-1;
i--;
}
}
}
def delete(a,n,num):
for i in range(0,n):
if a[i]==num:
for j in range(i,n):
a[j]=a[j+1]
n=n-1
i=i-1
8、数组翻转
#include <studio.h>
void flip(int a[],n){
int left,right,temp;
for(left=0,right=n-1;left<right;left++,right--){
temp=a[left];
a[left]=a[right];
a[right]=temp;
}
}
def flip(a,n):
left=0
right=n-1
while(left<right):
t=a[left]
a[left]=a[right]
a[right]=t
left+=1
right-=1
9、数组转置矩阵
#include <studio.h>
#include <math.h>
int main(){
int a[2][3]={{1,2,3},{4,5,6}};
int b[3][2],i,j;
printf("array A:\n")
for(i=0;i<2;i++){
for(j=0;j<3;j++){
printf("%d",a[i][j] );
b[j][i]=a[i][j];
}
printf("\n");
}
printf("array B:\n"){
for(i=0;i<2;i++){
for(j=0;j<3;j++){
printf("%d",b[i][j]);
}
printf("\n");
}
}
return 0;
}
10、用递归方法求n!
#include <studio.h>
int main(){
long fac(int n);
int n;
long y;
printf("请输入求阶乘的数");
scanf("%d",&n);
y=fac(n);
printf("%d!=%ld\n",n,y);
return 0;
}
long fac(int n){
long f;
if(n<0)
printf("无解!");
else if(n==0||n==1)
f=1;
else
f=fac(n-1)*n;
return f;
}
def fac(n):
if n<0:
print("无解")
elif n==0 or n==1:
f=1
else:
f=fac(n-1)*n
return f
n=eval(input("n:"))
f=fac(n)
print(f)
11、数组作为函数参数
#include <studio.h>
int main(){
float aver(float a[][6]);
int i=0;
float pay[3][6]={{2345,4309,3123,2230,4490}
,{2098,4320,1644,2865,4589},{3152,2317,3467,4312,5432}};
printf("平均工资为:%7.2f\n",aver(pay));
for(i=0;i<3;i++)
printf("第%d组的平均工资为:%7.2f\n",i+1,pay[i][5]);
return 0;
}
float aver(float a[][6]){
int i,j;
float sum=0,total=0;
for(i=0;i<3;i++){
sum=0;
for(j=0;j<5;j++)
sum+=a[i][j];
a[i][5]=sum/5.0;
total+=a[i][5];
}
return(total/3.0);
}