重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
#include stdio.h
成都创新互联公司是一家集网站建设,什邡企业网站建设,什邡品牌网站建设,网站定制,什邡网站建设报价,网络营销,网络优化,什邡网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
#define ARR_LEN 20
static int ReverseArray(int arr[], int n);
main()
{
int arr[ARR_LEN];
int i,n;
printf("input array data ...\n");
n = 0;
while (n ARR_LEN) {
scanf("%d",arr[n]);
n++;
if(getchar() == '\n') break;
}
printf("reversing ... \n");
ReverseArray(arr,n);
for (i=0;in;i++) {
printf("%d ",arr[i]);
}
printf("\n");
}
static int ReverseArray(int arr[], int n)
{
int temp;
int i;
for (i=0;in/2;i++) {
temp = arr[i];
arr[i] = arr[n-1-i];
arr[n-1-i] = temp;
}
return 0;
}
数组个数不确定到底要怎么编程啊: 用malloc函数动态申请数组空间,要实现,我就补上。
/*
* C program on turbo c 2.0
* ------------------------
*/
#include stdio.h
#include malloc.h
#define ARR_LEN 2
static int ReverseArray(char arr[], int n);
main()
{
char *arr;
int arr_size;
int arr_len;
int i;
char ch;
arr = (char*)malloc(ARR_LEN *sizeof(char));
if (arr == NULL) exit(-1);
arr_size = ARR_LEN;
arr_len = 0;
while ((ch=getchar()) != '\n') {/* 输入字符数据(包括非回车符的所以字符,当然包括空格符了),以回车结束 */
if (arr_len = arr_size - 1 ) {
arr = (char*)realloc(arr,(arr_size + ARR_LEN)*sizeof(char));
if (arr == NULL) exit(-1);
arr_size += ARR_LEN;
}
arr[arr_len++] = ch;
}
arr[arr_len] = '\0';
printf("Reverse order...\n"); /* 逆序输出 */
ReverseArray(arr,arr_len);
for (i=0;iarr_len;i++) {
printf("%c",arr[i]);
}
printf("\n");
free(arr);
getch();
}
static int ReverseArray(char arr[], int n)
{
char temp;
int i;
for (i=0;in/2;i++) {
temp = arr[i];
arr[i] = arr[n-1-i];
arr[n-1-i] = temp;
}
return 0;
}
#include stdio.h
void revstr(char *s)
{
char *p =s,c;
while (*p) p++;
p--;
if(sp)
{
c = *s;
*s = *p;
*p='\0'; //递归之前,p的位置要置上结束符,否则再次进入函数时,p会一直找到原来的字符串结尾
revstr(s+1);
*p=c; //这里才把正确的字符填进去
}
}
int main()
{
char s[100];
gets(s);
revstr(s);
printf("%s",s);
}
楼主的代码有些乱,我改了改,你看看。
将原本数组,头尾对称位置互换即可。
函数代码如下:
void reverse(int *a, int l)//将a上长度为l的数组逆置
{
int i,t;
for(i = 0; i =l/2; i ++)
{
t = a[i];
a[i] = a[l-i-1];
a[l-i-1] = t;
}
}
将原本数组,头尾对称位置互换即可。
函数代码如下:
void reverse(int *a, int l)//将a上长度为l的数组逆置
{
int i,t;
for(i = 0; i =l/2; i ++)
{
t = a[i];
a[i] = a[l-i-1];
a[l-i-1] = t;
}
}
#include stdio.h
int Input(int data[])
{
int i,n;
printf("输入数据个数:");
scanf("%d",n);
for(i=0;in;i++)
scanf("%d",data[i]);
return n;
}
void Output(int data[],int n)
{
int i;
for(i=0;in;i++)
printf("%d ",data[i]);
printf("\n");
}
void Reverse(int data[],int n)
{
int i,j,t;
for(i=0,j=n-1;ij;i++,j--)
{
t=data[i];
data[i]=data[j];
data[j]=t;
}
}
int main(int argc, char *argv[])
{
int data[100],n;
int i,j;
n=Input(data);
Output(data,n);
Reverse(data,n);
Output(data,n);
return 0;
}
/*
10
2 3 4 5 6 7 8 9 10 11
*/
#include "stdio.h"
void arrrev(int *p,int n){
int *q,t;
for(q=p+n-1;pq;p++,q--)
t=*p,*p=*q,*q=t;
}
int main(int argc,char *argv[]){
int a[100],n,i;
printf("Please enter a set of integers(other end)...\n");
for(n=0;n100;n++)
if(scanf("%d",a+n)!=1)
break;
while(getchar()!='\n');
arrrev(a,n);
for(i=0;in;printf("%d ",a[i++]));
printf("\n");
return 0;
}
运行样例: