【无标题】

1、求范围内质数(素数)的个数;

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int Panduan(int num){
    int count=0;
	int num1;
	for(int i=num;i>=2;i--){
		count=0;
		for(int j=1;j<=num;j++){
			if(i%j==0){
				count++;
			}
		}
		if(count==2)
			num1++;
	}
	return num1;
}
    int main(int argc,const char *argv[])
{
    int num;
    printf("请输入素数范围最大值");
    scanf("%d",&num);
    int count=Panduan(num);
    printf("范围内素数个数为%d\n",count);
    return 0;
}

输出为:

 2、求范围内完数的和;

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int Wanshu(int num){
	int count=0,sum=1;
	for(int i=2;i<=num;i++){
		sum=1;
		for(int j=2;j<=i/2;j++){
			if(i%j==0){
				sum+=j;
			}
		}
		if(sum==i){
			count+=sum;
		}
	}
	return count;
}
int main(int argc, const char *argv[])
{
	int num;
	printf("请输入一个整数范围");
	scanf("%d",&num);
	printf("完数的和为:%d\n",Wanshu(num));
	return 0;
}

输出为:

 3、打印直角三角形

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void Tu_2(int n);
void Tu_1(int n){
	for(int i=0;i<n;i++){
		for(int j=0;j<=i;j++){
			printf("*");
		}
		printf("\n");
	}
}
void Tu_2(int n){
	for(int i=0;i<n;i++){
		for(int j=0;j<=i;j++){
			printf(" ");
		}
		printf("\n");
	}
}
int main(int argc, const char *argv[])
{
	printf("请输入打印的行数:");
	int n;
	scanf("%d",&n);
	Tu_1(n);
	return 0;
}

输出为

 4、打印倒立直角三角形

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void Tu_2(int n){
	for(int i=0;i<=n;i++){
		for(int j=i;j<=n;j++){
			printf("*");
		}
		printf("\n");
	}
}
int main(int argc, const char *argv[])
{
	printf("请输入打印的行数:");
	int n;
	scanf("%d",&n);
	Tu_2(n);
	return 0;
}

输出结果为:

 5、打印三角形

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void Tu_2(int n){
	for(int i=0;i<=n;i++){
		for(int k=i;k<=n;k++){
			printf(" ");
		}
		for(int j=0;j<=i;j++){
			printf("*");
		}
		printf("\n");
	}
}
int main(int argc, const char *argv[])
{
	printf("请输入打印的行数:");
	int n;
	scanf("%d",&n);
	Tu_2(n);
	return 0;
}

输出为

 6、打印金字塔

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void Tu_2(int n){
	for(int i=0;i<n;i++){
		for(int k=i;k<n;k++){
			printf(" ");
		}
		for(int j=0;j<=i;j++){
			printf("*");
		}
		for(int p=1;p<=i;p++){
			printf("*");
		}
		printf("\n");
	}
}
int main(int argc, const char *argv[])
{
	printf("请输入打印的行数:");
	int n;
	scanf("%d",&n);
	Tu_2(n);
	return 0;
}

输出为:

 7、一维数组求最值;

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int Zuizhi(int n,int arr[n]){
	int *p=arr;
	int max=*p;
	for(int i=1;i<n;i++){
		if(max<*(p+i)){
			int t=max;
			max=*(p+i);
			*(p+i)=t;
		}	
	}
	return max;
}
int main(int argc, const char *argv[])
{
	int n;
	printf("请输入数组的长度");
	scanf("%d",&n);
	int arr[n];
	for(int i=0;i<n;i++){
		printf("arr[%d]=",i);
		scanf("%d",&arr[i]);
	}
	printf("最大值为:%d\n",Zuizhi(n,arr));
	return 0;
}

输出为:

 8、一维数组冒泡排序;

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void Bubble(int n,int arr[n]){
	int *p=arr;
	for(int i=0;i<n-1;i++){
		for(int j=0;j<n-1-i;j++){
			if(*(p+j)>*(p+j+1)){
				int t=*(p+j);
				*(p+j)=*(p+j+1);
				*(p+j+1)=t;
			}
		}
	}
	for(int i=0;i<n;i++){
		printf("%d  ",*(p+i));
	}
}
int main(int argc, const char *argv[])
{
	int n;
	printf("请输入数组长度");
	scanf("%d",&n);
	int arr[n];
	for(int i=0;i<n;i++){
		printf("arr[%d]=",i);
		scanf("%d",&arr[i]);
	}
	Bubble(n,arr);
	return 0;
}

输出为:

 9、一维数组选择排序;

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void Xuanze(int n,int arr[n]){
	int *p=arr;
	for(int i=0;i<n-1;i++){
		int min=i;
		for(int j=i+1;j<n;j++){
			if (*(p+min)>*(p+j)){
				int t=*(p+j);
				*(p+j)=*(p+min);
				*(p+min)=t;
			}
		}
	}
	for(int i=0;i<n;i++){
		printf("%d  ",*(p+i));
	}
}
int main(int argc, const char *argv[])
{
	int n;
	printf("请输入数组长度");
	scanf("%d",&n);
	int arr[n];
	for(int i=0;i<n;i++){
		printf("arr[%d]=",i);
		scanf("%d",&arr[i]);
	}
	Xuanze(n,arr);
	return 0;
}

输出为:

 10、二维数组求最大值;

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int Max(int n,int m,int(*p)[m]){
	int i,j;
	for(i=0;i<n;i++){
		for(j=0;j<m;j++){
			if(*(*(p+i)+j)>*(*(p+i+1)+j+1)){
				int t=*(*(p+i)+j);
				*(*(p+i)+j)=*(*(p+i+1)+j+1);
				*(*(p+i+1)+j+1)=t;
			}
		}
	}
	return *(*(p+i)+j);
	//return *(*(p+n-1)+m-1);
}
int main(int argc, const char *argv[]){
	int n,m;
	printf("请输入数组行列数");
	scanf("%d%d",&n,&m);
	int arr[n][m];
	for(int i=0;i<n;i++){
		for(int j=0;j<m;j++){
		printf("arr[%d][%d]=",i,j);
		scanf("%d",&arr[i][j]);
		}
	}
	printf("最大值为:%d\n",Max(n,m,arr));
	return 0;
}

输出为:

 11、杨辉三角

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void Yanghui(int n,int(*p)[n]){
	for(int i=0;i<n;i++){
		for(int j=0;j<=i;j++){
			if(j==0||i==j){
				*(*(p+i)+j)=1;
			}else{
				*(*(p+i)+j)=*(*(p+i-1)+j)+*(*(p+i-1)+j-1);
			}
		}
	}
	for(int i=0;i<n;i++){
		for(int k=n-i;k>0;k--){
			printf(" ");
		}
		for(int j=0;j<=i;j++){
			printf("%3d",*(*(p+i)+j));
		}
		printf("\n");
	}
}
int main(int argc, const char *argv[])
{
	int n;
	printf("请输入杨辉三角行数");
	scanf("%d",&n);
	int arr[n][n];
	Yanghui(n,arr);
	return 0;
}

输出为:

 12、对角线之和

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int Duijiao(int n,int(*p)[n]){
	int sum=0;
	for(int i=0;i<n;i++){
		for(int j=0;j<n;j++){
			if(i==j||i+j==n-1){
				sum+=*(*(p+i)+j);
			}
		}
	}
	return sum;
}
int main(int argc, const char *argv[])
{
	int n;
	printf("请输出二维数组的行列数");
	scanf("%d",&n);
	int arr[n][n];
	for(int i=0;i<n;i++){
		for(int j=0;j<n;j++){
			printf("arr[%d][%d]=",i,j);
			scanf("%d",&arr[i][j]);
		}
	}
	printf("对角线值和为:%d\n",Duijiao(n,arr));
	return 0;
}

输出为:

 13、strcpy功能

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void my_strcpy(char *p1,char *p2){
		while(*p2){
			*p1=*p2;
			p1++;
			p2++;
		}
		*p1=*p2;
}
int main(int argc, const char *argv[])
{
	char s1[50];
	printf("请输入原有字符串:");
	gets(s1);
	printf("请输入要拷贝的字符串");
	char s2[50];
	gets(s2);
	my_strcpy(s1,s2);
	printf("拷贝后s1字符串为:%s\n",s1);

	return 0;
}

输出为:

 13、strlen功能

linux@ubuntu:~/base-c/11day$ cat 12.c 
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int my_strlen(char *p){
	int i=0;
	while(*(p+i)){
		i++;
	}
	return i;
}
int main(int argc, const char *argv[])
{
	char s1[30];
	printf("请输入s1字符串:");
	gets(s1);
	char s2[30];
	printf("请输入s2字符串:");
	gets(s2);
	printf("s1字符串长度为:%d\n",my_strlen(s1));
	printf("s2字符串长度为:%d\n",my_strlen(s2));
	return 0;
}

输出为:

 14、strcmp功能

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int my_strcmp(char *p1,char *p2){
	int i=0;
	while(*(p1+i)==*(p2+i)){
		if(*(p1+i)=='\0'){
			return 0;
		}
		i++;
	}
	return *(p1+i)-*(p2+i);
		
}
int main(int argc, const char *argv[])
{
	char s1[50];
	printf("请输入字符串s1\n");
	gets(s1);
	char s2[50];
	printf("请输入字符串s2\n");
	gets(s2);
	int dev=my_strcmp(s1,s2);
	if(dev>0){
		printf("s1>s2\n");
	}else if(dev<0){
		printf("s1<s2\n");
	}else{
		printf("s1=s2\n");
	}
	return 0;
}

输出为:

 15、stcat 功能

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void my_strcat(char *p1,char *p2){
	int i=0,j=0;
	while(*(p1+i)){
		i++;
	}
	while(*(p2+j)){
		*(p1+i)=*(p2+j);
		j++;
		i++;
	}
	*(p1+i)=*(p2+j);

}
int main(int argc, const char *argv[])
{
	char s1[50];
	printf("请输入字符串s1");
	gets(s1);
	char s2[50];
	printf("请输入字符串s2");
	gets(s2);
	my_strcat(s1,s2);
	printf("%s\n",s1);
	return 0;
}

输出为:

16、字符串逆置

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void Nizhi(char *p,int l){
	int i=0,j=l-1;
	while(i<j){
		char t=*(p+i);
		*(p+i)=*(p+j);
		*(p+j)=t;
		i++;
		j--;
	}
	i=0,j=0;
	while(i<l){
		while(*(p+j)!=' '&&*(p+j)!='\0'){
			j++;
		}
		int t=j-1;
		while(i<t){
			char k=*(p+i);
			*(p+i)=*(p+t);
			*(p+t)=k;
			i++;
			t--;
		}
		while(*(p+j)==' '){
			j++;
		}
		i=j;
	}

}
int main(int argc, const char *argv[])
{
	char s[50];
	printf("请输入一个带空格的字符串\n");
	gets(s);
	int l=strlen(s);
	Nizhi(s,l);
	printf("%s\n",s);
	return 0;
}

输出为:

 17、字符串数组排序

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void Bubble(char (*p)[30],int n){
	char t[30]="";
	for(int i=0;i<n-1;i++){
		for(int j=0;j<n-i-1;j++){
			if(strcmp(*(p+j),*(p+j+1))>0){
				strcpy(t,*(p+j));
				strcpy(*(p+j),*(p+j+1));
				strcpy(*(p+j+1),t);
			}
		}
	}
	printf("排序后结果为:");
	for(int i=0;i<5;i++){
		printf("%s ",*(p+i));
	}

}
int main(int argc, const char *argv[])
{
	char arr[5][30]={"123","789","asdc","abcd","456"};
	Bubble(arr,5);
		return 0;
}

输出为:

 18、字符串查找:

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void Search(char *key,char(*p)[30],int n){
	int count=0;
	for(int i=0;i<n;i++){
		if(strcmp(key,*(p+i))==0){
			count++;
		}
	}
	if(count==0)
		printf("不存在");
	else
		printf("存在");
}
int main(int argc, const char *argv[])
{
	char a[5][30]={"111","222","aaa","bbb","ccc"};
	char key[30]="";
	printf("请输入要查找的字符:");
	gets(key);
	Search(key,a,5);
	return 0;
}

输出结果:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值