数组中内容(数字,字符,字符串)交换,不引用第三变量
2017-09-21 23:35
369 查看
//数组中数字交换
#include<stdio.h>
#include<stdlib.h>
#define n 5
void put(int arr[],int i);
void change(int arr1[],int arr2[]);
void out(int arr[]);
int main()
{
int arr1
,arr2
;
int i=0;
//输入
printf("输入数组1的%d个数:\n",n);
put(arr1,i);
printf("输入数组2的%d个数:\n",n);
put (arr2,i);
change(arr1,arr2,i);
printf("交换后结果:\n");
//输出
printf("\n数组1:");
out (arr1);
printf("\n数组2:");
out (arr2);
system("pause");
return 0;
}
void change(int arr1[],int arr2[],int i)
{
//使用第三变量
int temp=0;
for(i=0;i<n;i++)
{
temp=arr1[i];
arr1[i]=arr2[i];
arr2[i]=temp;
}
/*
//使用异或运算
for(i=0;i<n;i++)
{
arr1[i]=arr1[i]^arr2[i];
arr2[i]=arr1[i]^arr2[i];
arr1[i]=arr1[i]^arr2[i];
}
*/
}
void out(int arr[])
{
int i=0;
for(i=0;i<n;i++)
{
printf(" %d ",arr[i]);
}
}
void put (int arr[],int i)
{
for(i=0;i<n;i++)
scanf("%d",&arr[i]);
}
//引深
//数组中字符和字符串交换
#include<stdio.h>
#include<stdlib.h>
#define N 5
void put(char arr[],int i);
void change(char arr1[],char arr2[],int i);
void out (char arr[],int i);
int main()
{
char arr1
,arr2
;
int i=0;
char arr3
={"abc"};
char arr4
={"def"};
printf("交换前,字符串1:%s\n字符串2:%s\n",arr3,arr4);
for(i=0;i<N;i++)//字符串交换
{
arr3[i]=arr3[i]^arr4[i];
arr4[i]=arr3[i]^arr4[i];
arr3[i]=arr3[i]^arr4[i];
}
printf("交换后,字符串3:%s\n字符串4:%s\n",arr3,arr4);
printf("\n**************************\n");
//输入
printf("输入数组1的%d个字符:\n",N);
put(arr1,i);
printf("输入数组2的%d个字符:\n",N);
put (arr2,i);
change(arr1,arr2,i);
printf("交换后字符结果:\n");
//输出
printf("\n数组1:");
out (arr1,i);
printf("\n数组2:");
out (arr2,i);
system("pause");
return 0;
}
void put (char arr[],int i)
{
//printf("输入数组1中的%d个变量\n",N);
for(i=0;i<5;i++)
{
scanf("%c",&arr[i]);//连续从缓冲区读取所有字符
//不加getcher()函数读取一个字符,字符应连续输入,不可用空格和回车(因为其也算字符)
getchar();
}
}
void change(char arr1[],char arr2[],int i)
{
for(i=0;i<N;i++)//字符串交换
{
arr1[i]=arr1[i]^arr2[i];
arr2[i]=arr1[i]^arr2[i];
arr1[i]=arr1[i]^arr2[i];
}
}
void out (char arr[],int i)
{
for(i=0;i<N;i++)
{
printf(" %c ",arr[i]);
}
}
#include<stdio.h>
#include<stdlib.h>
#define n 5
void put(int arr[],int i);
void change(int arr1[],int arr2[]);
void out(int arr[]);
int main()
{
int arr1
,arr2
;
int i=0;
//输入
printf("输入数组1的%d个数:\n",n);
put(arr1,i);
printf("输入数组2的%d个数:\n",n);
put (arr2,i);
change(arr1,arr2,i);
printf("交换后结果:\n");
//输出
printf("\n数组1:");
out (arr1);
printf("\n数组2:");
out (arr2);
system("pause");
return 0;
}
void change(int arr1[],int arr2[],int i)
{
//使用第三变量
int temp=0;
for(i=0;i<n;i++)
{
temp=arr1[i];
arr1[i]=arr2[i];
arr2[i]=temp;
}
/*
//使用异或运算
for(i=0;i<n;i++)
{
arr1[i]=arr1[i]^arr2[i];
arr2[i]=arr1[i]^arr2[i];
arr1[i]=arr1[i]^arr2[i];
}
*/
}
void out(int arr[])
{
int i=0;
for(i=0;i<n;i++)
{
printf(" %d ",arr[i]);
}
}
void put (int arr[],int i)
{
for(i=0;i<n;i++)
scanf("%d",&arr[i]);
}
//引深
//数组中字符和字符串交换
#include<stdio.h>
#include<stdlib.h>
#define N 5
void put(char arr[],int i);
void change(char arr1[],char arr2[],int i);
void out (char arr[],int i);
int main()
{
char arr1
,arr2
;
int i=0;
char arr3
={"abc"};
char arr4
={"def"};
printf("交换前,字符串1:%s\n字符串2:%s\n",arr3,arr4);
for(i=0;i<N;i++)//字符串交换
{
arr3[i]=arr3[i]^arr4[i];
arr4[i]=arr3[i]^arr4[i];
arr3[i]=arr3[i]^arr4[i];
}
printf("交换后,字符串3:%s\n字符串4:%s\n",arr3,arr4);
printf("\n**************************\n");
//输入
printf("输入数组1的%d个字符:\n",N);
put(arr1,i);
printf("输入数组2的%d个字符:\n",N);
put (arr2,i);
change(arr1,arr2,i);
printf("交换后字符结果:\n");
//输出
printf("\n数组1:");
out (arr1,i);
printf("\n数组2:");
out (arr2,i);
system("pause");
return 0;
}
void put (char arr[],int i)
{
//printf("输入数组1中的%d个变量\n",N);
for(i=0;i<5;i++)
{
scanf("%c",&arr[i]);//连续从缓冲区读取所有字符
//不加getcher()函数读取一个字符,字符应连续输入,不可用空格和回车(因为其也算字符)
getchar();
}
}
void change(char arr1[],char arr2[],int i)
{
for(i=0;i<N;i++)//字符串交换
{
arr1[i]=arr1[i]^arr2[i];
arr2[i]=arr1[i]^arr2[i];
arr1[i]=arr1[i]^arr2[i];
}
}
void out (char arr[],int i)
{
for(i=0;i<N;i++)
{
printf(" %c ",arr[i]);
}
}
相关文章推荐
- 输入一个字符串内有数字和非数字字符,将连续的数字作为一个整数,存到数组a中,统计整数的个数,并输出这些数
- 有一个字符数组的内容为:"student a am i",请你将数组的内容改为"i am a student". 要求: 不能使用库函数。只能开辟有限个空间(空间个数和字符串的长度无关)。
- 输入一个字符串,内有数字和非数字字符,将其中连续的数字作为一个整数,依次存放到一数组a中。统计共有多少个整数,并输出这些数。
- java中数字、字符串、字符数组的转换
- 九度oj+原始一个字符串左右交换字符最少步数变成含有2012字串+bfs及字符串和整型转换以及没有标记visit数组大小,只能用stl中的vecotr,实际上set更好。有count函数
- 输入字符串,内有数字和非字符数组,例如A123x456将其中连续的数字作为一个整数,依次存放到一个数组中,如123放到a[0],456放到a[1],并输出a这些数
- java中两个字符交换内容(可用于字符串反转)
- 变量,常量,字符,字符串,数组的声明及初始化
- c++中怎样将字符数组转化成字符串变量...?
- 有一个字符数组的内容为:"student a am i",请你将数组的内容改为"i am a student". 要求: 不能使用库函数。只能开辟有限个空间(空间个数和字符串的长度无关)。 提交
- 字符数组的定义、初始化及引用以及一些常用的字符串处理函数
- 有一个字符数组的内容为:"student a am i",请你将数组的内容改为"i am a student". 要求: 不能使用库函数。只能开辟有限个空间(空间个数和字符串的长度无关)。
- 编程实现:从字符中获取连续数组序列,如字符串"a1dl2iad9j3la5kudp7u9pn4blj8ap5u3e6ml9a"中可以得到的连续数字序列为1234556.【注】:只考虑一位,因此最长的数
- C++ 字符串,字符数组,数字之间转换
- C语言字符串指针变量与字符数组的区别
- 尚硅谷 第三课全 java-变量类型转换-字符与字符串-算数运算符-赋值运算符-三元运算符-.switch语句-循环结构-while 循环语句 do-while 循环语句
- @V@ java代码笔记2010-06-12:java控制台输入各类型类实现;以及判断输入字符串里面是否有数字的两种方法:方法1:转换成字符数组;方法2:正则表达式。
- 关于指针 用字符数组,字符指针变量输入字符串 动态为字符型指针变量分配内存
- C/C++——声明一个到字符的指针,包含10个整数的数组,到包含10个整数的数组的引用,到字符串的数组的指针,到字符的指针的指针...
- 将以逗号隔开的字符串,转化为字符数组并获取每一个的内容