算法笔记学习笔记03

2.6 函数

问题 A: 习题7-5 字符串逆序存放

#include<stdio.h>
#include<string.h>

void change(char a[], char b[]){
	int len, i;
	len = strlen(a);
	for(i=0; i < len; i++){
		b[len-1-i] = a[i];
	}
	b[len] = '\0';
}

int main(){
	char a[100],b[100];
	scanf("%s",a);
	change(a,b);
	printf("%s",b);
	return 0;
}

问题 B: 习题7-7 复制字符串中的元音字母

#include<stdio.h>
#include<string.h>

void select(char a[], char b[]){
	int len, i, j=0;
	len = strlen(a);
	for(i=0; i < len; i++){
		if(a[i]=='a'||a[i]=='e'||a[i]=='i'||a[i]=='o'||a[i]=='u')
			b[j++] = a[i];
	}
	b[j] = '\0';
}

int main(){
	char a[100],b[100];
	scanf("%s",a);
	select(a,b);
	printf("%s",b);
	return 0;
}

2.7 指针

 问题 A: C语言10.1

#include<stdio.h>

void compare(int *a, int *b){
	if(*a < *b){
		int temp = *b;
		*b = *a;
		*a = temp;
	}
}

int main(){
	int a, b, *p, *q;
	scanf("%d%d",&a,&b);
	p = &a;
	q = &b;
	compare(p,q);
	printf("%d %d\n",*p,*q);
	return 0;
}

问题 B: C语言10.2 

#include<stdio.h>

void compare(int *a, int *b,int *c){
	if(*a < *b){
		int temp = *b;
		*b = *a;
		*a = temp;
	}
	if(*a < *c){
		int temp = *c;
		*c = *a;
		*c = temp;
	}
	if(*b < *c){
		int temp = *c;
		*c = *b;
		*b = temp;
	}
}

int main(){
	int a, b, c, *p, *q, *m;
	scanf("%d%d%d",&a,&b,&c);
	p = &a;
	q = &b;
	m = &c;
	compare(p,q,m);
	printf("%d %d %d\n",*p,*q,*m);
	return 0;
}

问题 C: C语言10.10

#include<stdio.h>
#include<string.h>

int main(){
	char *a = "I love China!";
	int n, i;
	scanf("%d",&n);
	for(i = n; i < strlen(a); i++)
		printf("%c",*(a+i)); 
	return 0;
}	

 

问题 D: C语言10.15

#include<stdio.h>
#include<string.h>

void change(char *a,char *b){
	char c[100];
	strcpy(c,a);
	strcpy(a,b);
	strcpy(b,c);
}

int main(){
	char a[100] , b[100], c[100];
	scanf("%s%s%s",a,b,c);
	if(strcmp(a,b)>0) change(a,b);
	if(strcmp(a,c)>0) change(a,c);
	if(strcmp(b,c)>0) change(c,b);
	printf("%s\n%s\n%s\n",a,b,c);
	return 0;
}	

问题 E: C语言10.16

#include<stdio.h>

void input(int *a){
	int i;
	for(i = 0; i < 10; i++){
		scanf("%d",(a+i));
	}
}

void deal(int *a){
	int i, m, n, max, min, t;
	max = min = 0;
	for(i = 1;i < 10; i++){
		if(a[max] < a[i]) max = i;
		if(a[min] > a[i]) min = i;
	}
	t = a[0];a[0] = a[min];a[min] = t;
	t = a[9];a[9] = a[max];a[max] = t;
}

void output(int *a){
	int i;
	for(i = 0; i < 10; i++){
		printf("%d ",*(a+i));
	}
}

int main(){
	int a[10];
	input(a);
	deal(a);
	output(a);
	return 0;
}	

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值