C程序设计(第四版) 谭浩强 习题2.4(1)
习题 2.4(1) 有两个瓶子A和B, 分别盛放醋和酱油,要求将它们互换(即A瓶原来盛醋,现在改盛酱油,B瓶则相反)。
IDE工具:VS2010
Note: 使用不同的IDE工具可能有部分差异。
代码块
方法1:使用数组
#include <stdio.h>
#include <stdlib.h>
int main(){
char A[10] = "vingar";
char B[10] = "soy sauce";
printf("A: %-10s B: %-10s\n", A, B);
char temp[10];
for(int i = 0; i < 10; i++){
temp[i] = A[i];
A[i] = B[i];
B[i] = temp[i];
}
printf("A: %-10s B: %-10s\n", A, B);
system("pause");
return 0;
}
方法2:使用指针
#include <stdio.h>
#include <stdlib.h>
int main(){
char *A = "vingar";
char *B = "soy sauce";
printf("A: %-10s B: %-10s\n", A, B);
char *temp = (char*)malloc(10 * sizeof(char));
temp = A;
A = B;
B = temp;
printf("A: %-10s B: %-10s\n", A, B);
free(temp);
system("pause");
return 0;
}
方法3:使用函数的模块化设计
#include <stdio.h>
#include <stdlib.h>
void swap(char a[], char b[]){
char temp[10];
for(int i = 0; i < 10; i++){
temp[i] = a[i];
a[i] = b[i];
b[i] = temp[i];
}
}
int main(){
char A[10] = "vingar";
char B[10] = "soy sauce";
printf("A: %-10s B: %-10s\n", A, B);
swap(A, B);
printf("A: %-10s B: %-10s\n", A, B);
system("pause");
return 0;
}