您的位置:首页 > 编程语言 > C语言/C++

100000571 《算法笔记》2.7小节——C/C++快速入门->指针

2020-03-08 13:17 721 查看

《算法笔记》2.7小节——C/C++快速入门->指针

1269 Problem A C语言10.1

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

int main() {
int a, b;
int *p1=&a, *p2=&b;

scanf("%d %d", p1,p2);
if (*p1 > *p2) printf("%d %d\n", *p1, *p2);
else printf("%d %d\n", *p2, *p1);
//	printf("%d %d\n", *p1 > *p2 ? *p1 : *p2, *p1 > *p2 ? *p2 : *p1);

return 0;
}

1270 Problem B C语言10.2

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

int main() {
int a, b, c;
int *p1 = &a, *p2 = &b, *p3 = &c;

scanf("%d %d %d", p1, p2, p3);
if (*p1 < *p2) {
int *temp = p1;
p1 = p2;
p2 = temp;
}
if (*p2 < *p3) {
int *temp = p2;
p2 = p3;
p3 = temp;
}
if (*p1 < *p2) {
int *temp = p1;
p1 = p2;
p2 = temp;
}

printf("%d %d %d\n", *p1, *p2, *p3);
printf("%d %d %d\n", (*p1 > *p2 ? *p1 : *p2) > *p3 ? (*p1 > *p2 ? *p1 : *p2) : *p3, (*p1 > *p2 ? *p1 : *p2) > *p3 ? ((*p1 > *p2 ? *p2 : *p1) > *p3 ? (*p1 > *p2 ? *p2 : *p1) : *p3) : (*p1 > *p2 ? *p1 : *p2), (*p1 > *p2 ? *p2 : *p1) > *p3 ? *p3 : (*p1 > *p2 ? *p2 : *p1));

return 0;
}

1278 Problem C C语言10.10

#include <cstdio>
#include <cstring>

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

return 0;
}

1283 Problem D C语言10.15

#include <cstdio>
#include <cstring>

//方法一:指针交换要用引用!用指针别名来交换,否则指针地址交换无效
/*void swap(char * &a, char * &b)
{
//交换地址
char *temp = a;
a = b;
b = temp;
}
*/

//方法二:交换指针指向的单元的数据
void swap(char *a, char *b)
{
char temp[20];
strcpy(temp,a);
strcpy(a,b);
strcpy(b,temp);
}
int main()
{
char a[20],b[20],c[20];
gets(a);gets(b);gets(c);
char *s1=a, *s2=b, *s3=c;

//先 1 与 3 比
if(strcmp(s1,s3)>0) swap(s1,s3);
//再 2 3 比
if(strcmp(s2,s3)>0) swap(s2,s3);
//确定s3最大,再判断s1 s2
if(strcmp(s1,s2)>0) swap(s1,s2);

puts(s1);puts(s2);puts(s3);

return 0;
}
#include <cstdio>
#include <cstring>

int main() {
char a[20], b[20], c[20];
//gets_s(a); gets_s(b); gets_s(c);
scanf("%s %s %s", a,b,c);
char *p1 = a, *p2 = b, *p3 = c;

if (strcmp(p1,p2)>0) {
char *temp = p1;
p1 = p2;
p2 = temp;
}
if (strcmp(p2,p3) > 0) {
char *temp = p2;
p2 = p3;
p3 = temp;
}
if (strcmp(p1, p2) > 0) {
char *temp = p1;
p1 = p2;
p2 = temp;
}
//puts(p1); puts(p2); puts(p3);
printf("%s\n%s\n%s", p1, p2, p3);
return 0;
}

1284 Problem E C语言10.16

#include <cstdio>
#include <cstring>

void getnum(int *);
void trans(int *);
void putnum(int*);
void swap(int *a, int *b);

int main() {
int p[10];
getnum(p);
trans(p);
putnum(p);

return 0;
}

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

void trans(int *p) {
int max = 0, min = 0;
for (int i = 1; i < 10; i++) {
if (*(p+max) < *(p+i)) max = i;
if (*(p+min) > *(p+i)) min = i;
}
swap((p+max), (p+9));
swap((p+min), p);
}

void putnum(int *p) {
for (int i = 0; i < 10; i++) {
printf("%d\n", *(p+i));
}
}

void swap(int * a, int * b) {
int temp = *a;
*a = *b;
*b = temp;
}
  • 点赞
  • 收藏
  • 分享
  • 文章举报
CMS_DC 发布了7 篇原创文章 · 获赞 0 · 访问量 70 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: