C语言10.1
题目描述
输入a和b两个整数,按先大后小的顺序输出a和b。注意请使用指针变量的方式进行比较和输出。
输入
两个用空格隔开的整数a和b。
输出
按先大后小的顺序输出a和b,用空格隔开。
请注意行尾输出换行。
样例输入 复制
5 9
样例输出 复制
9 5
//
// Created by SHNIXU on 10/11/2023.
//
#include<stdio.h>
int main(){
int a,b;
scanf("%d %d",&a,&b);
int *p=&a,*q=&b;
if(*p<*q){
int t=*p;
*p=*q;
*q=t;
}
printf("%d %d",*p,*q);
}
C语言10.2
题目描述
输入a、b、c三个整数,按先大后小的顺序输出a、b和c。注意请使用指针变量的方式进行比较和输出。
输入
三个用空格隔开的整数a、b和c。
输出
按先大后小的顺序输出a、b和c,用空格隔开。
请注意行尾输出换行。
样例输入 复制
9 0 10
样例输出 复制
10 9 0
//
// Created by SHNIXU on 10/11/2023.
//
#include<stdio.h>
void cmp(int *p,int *q){
if(*p<*q){
int t=*p;
*p=*q;
*q=t;
}
}
int main(){
int a,b,c;
scanf("%d %d %d",&a,&b,&c);
cmp(&a,&b);
cmp(&a,&c);
cmp(&b,&c);
printf("%d %d %d",a,b,c);
}
C语言10.10
题目描述
给定字符串定义char *a = “I love China!”,读入整数n,输出在进行了a = a + n这个赋值操作以后字符指针a对应的字符串。
输入
一个整数n,保证0<=n<13.
输出
输出进行了题目描述中赋值操作之后a对应的字符串。
请注意行尾输出换行。
样例输入 复制
7
样例输出 复制
China!
//
// Created by SHNIXU on 10/11/2023.
//
#include<stdio.h>
#include <string.h>
int main(){
int n;
scanf("%d",&n);
char *a = "I love China!";
for(int i=n;i< strlen(a);i++){
printf("%c",*(a+i));
}
}
C语言10.15
题目描述
输入3个字符串,按从小到大的顺序输出。要求使用指针的方法进行处理。
输入
3行,每行一个用字符串。保证每个字符串的长度不超过20。
输出
按从小到大的顺序输出这3个字符串,每个字符串一行。
请注意行尾输出换行。
样例输入 复制
China
CLOCK
deal
样例输出 复制
CLOCK
China
deal
//
// Created by SHNIXU on 10/11/2023.
//
#include<stdio.h>
#include <string.h>
void swap(char *s1,char *s2){
char t[20];
if(strcmp(s1,s2)>0){
strcpy(t,s1);
strcpy(s1,s2);
strcpy(s2,t);
}
}
int main(){
char a[20],b[20],c[20];
gets(a);
gets(b);
gets(c);
swap(a,b);
swap(a,c);
swap(b,c);
printf("%s\n%s\n%s\n", a, b, c);
}
C语言10.16
题目描述
输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。要求用3个函数实现,分别为输入10个数、进行处理、输出10个数。要求使用指针的方法进行处理。
输入
用空格隔开的10个整数。
输出
输出进行题目描述操作之后的10个整数,每个整数之后输出一个空格。
请注意行尾输出换行。
样例输入 复制
1 5 2 4 9 0 3 8 7 6
样例输出 复制
0 5 2 4 6 1 3 8 7 9
//
// Created by SHNIXU on 10/11/2023.
//
#include<stdio.h>
#include <string.h>
void input(int *a){
for(int i=0;i<10;i++){
scanf("%d",&a[i]);
}
}
//输出函数
void output(int *a)
{
for(int i=0;i<10;i++){
printf("%d ",a[i]);
}
printf("\n");
}
void max_min_swap(int *a){
int *max,*min,*k;
max=min=a;
for(k = a + 1; k < a + 10; k++){ //需要把数组a的值赋值给k进行比较交换,否则无法做到交换成功
if(*k>*max)
max=k;
else if(*k<*min)
min=k;
}
int t=a[0],p=a[9];
a[0]=*min;
*min=t;
if (max == a)
max = min;
a[9]=*max;
*max=p;
}
int main(){
int a[10];
input(a);
max_min_swap(a);
output(a);
}