C语言-题型汇总第三篇
题型1 赋值,比大小,ASCII表内问题,字符串函数
题型2 数学问题,几何图形,自定义函数(方法/子函数)
题型3 指针,结构体,链表,文件读写
8.使用指针
i)比较三个整数,并按照从大到小顺序输出。swap函数只能比较两个数
#include <stdio.h>
void swap(int* a,int* b){
int temp;
temp=*a;*a=*b;*b=temp;
}
int main(){
int n1,n2,n3;
int* number1=&n1;
int* number2=&n2;
int* number3=&n3;
printf("first:");
scanf("%d",&n1);
printf("\n");
printf("second:");
scanf("%d",&n2);
printf("\n");
printf("third:");
scanf("%d",&n3);
printf("\n");
if(*number1<*number2) swap(number1,number2);
if(*number1<*number3) swap(number1,number3);
if(*number2<*number3) swap(number2,number3);
printf("%d,%d,%d\n",*number1,*number2,*number3);
}
ii)比较三个字符串。因为数组在某种程度上类似指针,所以数组在这里充当指针
#include<stdio.h>
#include<string.h>
void swap(char* s1,char*s2){
char temp[30];
strcpy(temp,s1);
strcpy(s1,s2);
strcpy(s2,temp);
}
int main(){
char s1[30],s2[30],s3[30];
/*scanf("%s",&s1);
scanf("%s",&s2);
scanf("%s",&s3);*/
printf("输出三个字符串:\n");
gets(s1);
gets(s2);
gets(s3);
if(strcmp(s1,s2)<0){
swap(s1,s2);}
if(strcmp(s1,s3)<0){
swap(s1,s3);}
if(strcmp(s2,s3)<0){
swap(s2,s3);}
printf("排序后:\n");
printf("s1=%s,s2=%s,s3=%s\n",s1,s2,s3);
return 0;
//用到冒泡排序c
}
#include<stdio.h>
void input(int* zahl){
printf("请输入十个整数:\n");
for(int i=0;i<10;i++){
scanf("%d",&zahl[i]);}
}
int output(int* zahl){
printf("输出整数:\n");
for(int i=0;i<10;i++){
printf("%d ",zahl[i]);}
printf("\n");
}
void calculate(int* zahl){
int min=zahl[0];
int max=zahl[0];
int k,j,temp;
for(int i=0;i<10;i++){
if(min>zahl[i]){
min=zahl[i];k=i;}}
temp=zahl[0];zahl[0]=min;zahl[k]=temp;
for(int m=0;m<10;m++){
if(max<zahl[m]){
max=zahl[m];j=m;}
}
temp=zahl[9];zahl[9]=max;zahl[j]=temp;
}
int main()