这个c程序有什么问题啊

来源:百度知道 编辑:UC知道 时间:2024/06/05 13:10:41
#include <stdio.h>
void main ()
{void f (char *p1,int m);
char a[]={"a""s""d""f""g""h""j""k"};
int b;
printf("%s\n",*a);
printf("enter b%d\n",&b);
f (a,b);
printf("new is %s\n",*a);}
void f (char *p1,int m)
{
int c,d;
char e;
for(c=0;m>c;c++)
{for(d=0,p1=p1+6;7>d;d++,p1--)
{ e=*(p1+1);
*(p1+1)=*p1;}
*p1=e;}
}
谭浩强 C 语言程序设计 指针的习题 字符移位的那个

错得不止一点:
1、char a[]={"a""s""d""f""g""h""j""k"};
改为char a[] = {"asdfghjk" } ;
2、printf("%s\n",*a);
改为:
printf("%s\n",a);
printf("new is %s\n",*a);}
改为:
printf("new is %s\n",a) ;
3、printf("enter b%d\n",&b);
改为:
printf("please enter b :\n");
scanf( "%d" , &b ) ;
全部改正后如下:
#include<stdio.h>

void main()
{
void f (char *p1,int m);
char a[] = {"asdfghjk" } ;
int b = 0 ;
printf("%s\n",a);
printf("please enter b :\n");
scanf( "%d" , &b ) ;
f (a,b);
printf("new is %s\n",a) ;
}
void f (char *p1,int m)
{
int c,d;
char e;
for(c=0 ; c < m ; c++)
{
for(