C语言高手进

编写函数fun,通过指针实现将一个字符串反向。要求主函数输入字符串,通过调用函数fun实现输入字符串反向

#include<stdio.h>

void fun(char *X)
{
int j=0;
int i=0;
for(i=0;X[i]!='\0';i++);
i--;
char tmp;
while(j<i)
{
tmp=X[j];
X[j]=X[i];
X[i]=tmp;
i--;
j++;
}
}
void main()
{
char tmp[50];
scanf("%s",&tmp);
fun(tmp);
printf("%s\n",tmp);
}
///////////////////////////////////////////////////////////////////再试试这个
//指针在同一个程序里是唯一的,不论是对形参的操作还是对实参的操作都是对同一内存单元的操作,怎么会有错

#include<iostream.h>
void fun(char *X)
{

int j=0;
int i=0;
for(i=0;X[i]!='\0';i++);
i--;
char tmp;
while(j<i)
{
tmp=X[j];
X[j]=X[i];
X[i]=tmp;
i--;
j++;
}
}

void main()
{
char tmp[50];
cin.getline(tmp,50);
fun(tmp);
cout<<tmp<<endl;
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-10-31
楼上写的是错的。fun()里面是参数是指针,后面他给的参数是数组。要这样改
#include<iostream.h>
void fun(char *X)
{

int j=0;
int i=0;
for(i=0;X[i]!='\0';i++);
i--;
char tmp;
while(j<i)
{
tmp=X[j];
X[j]=X[i];
X[i]=tmp;
i--;
j++;
}
}

void main()
{
char tmp[50];
cin.getline(tmp,50);
fun(&tmp);
cout<<tmp<<endl;
}

C语言高手进。
f[b]=d%g;d=d\/g;g--;

菜鸟问一段C语言的程序,高手进
argv[2] 指向执行程序名后的第二个字符串 建议把程序的printf("%c\\n",argv[i][j]);改为printf("%c_",argv[i][j]);将工程编译后在命令提示符下运行(开始-运行-输入cmd,按回车即可),然后进入程序所在磁盘,(命令cd 文件路劲即可进入)。输入编译好的程序名+几个字符串,中间用空格隔开。

编程高手请进!(C语言)
1.include <stdio.h> include<stdlib.h> include<ctype.h> main(){ int count;\/*猜数字的次数*\/ int number;\/*系统产生的随机数字*\/ int guess;\/*程序员输入数字*\/ char yes='Y';clrscr();printf("\\nNow let us play the game.\\n Guess the number:");while (toupper(yes)=='Y'...

C语言 scanf输入数组 高手进
scanf只能一个整型或一个字符,要输入数组一般都是和For循环套用。如:int a[5], i;for (i = 0; i < 5; i++){ scanf ("%d", &a[i]);}

C语言编程 TC2.0 高手进..200分数学计算程序
{ int a,b;int c[] = {1,2,3,4,5,6,7,8,9,10};int i,sum;scanf("%d%d", &a,&b);printf("%d*%d=%d",a,b,a*b);scanf("%d", &a);printf("%d is %s",a,a&1?"odd":"even");for(i=0;i<10;i++)sum+=c[i];printf("average is:%f",(float)sum\/10);} ...

用C语言实现下列数学方程(高手进)
第二题,测试通过 include "math.h"void main(){ double N = 500;double s=0;for (int i=0;i<N;i++){ s = s+(4\/(1+pow(i\/N,2))+4\/(1+pow((i+1)\/N,2)))*(1\/(2*N));} printf("%f",s);}

C语言语句解释,高手请进!
void jsVal(){ int i, thou, hun, ten, data, j;int ab, cd;for (i=0; i<200; i++){ thou = a[i]\/1000; \/\/千位数字,因为是整形数,4位数除以1000取整就是千位上的数字。 下同。hun = a[i]%1000\/100; \/\/ 百位数字,这里先用%求余,如:6543%1000余543再除以100取整得...

C语言编程问题.请高手进(附源码)!!!HELP
for(c=0;c!=b;c++)sr();break;case 2:;break;case 3:;break;default:printf("输入错误,请重新打开程序输入!");} } void sr(void){ int b=0,d=0,f=0;float e=0.0;char A[20],c[20];FILE *g;g=fopen("fdsj.dat","a+");\/\/---a方式好,是追加 printf("请输入菜的类别...

c语言 字符串长度与数组长度,高手进
你好 应该这样理解 首先,就c语言来讲,字符串的实现一般使用数组,例如 char s[] = "hello";hello里面有五个字符 分别是 h e l l o 由于c语言规定在存放字符串的数组里要以字符串结束符来结束 也就是‘\\0’所以上面定义中的数组s长度为字符总个数5 加上一个结束符‘\\0’ 也就是6 那么 ...

单片机c语言程序高手进 这个程序应该怎样实现中断
首先来个键盘扫描程序。采集是A键按下还是B键按下。如果是A键按下的话,就给LED1口输出高电平然后延时1S,延时程序可以用delay来粗略延时,也可以用定时器精确延时;延时1S过后,让LED1口输出低电平,然后再延时1S。给这段程序用while或者for语句来循环5次,这样就能得到启动LED1(1S闪烁一次,持续10S...

相似回答
大家正在搜