c语言问题 初学者

#include<stdio.h>#include<string.h>intmain(){charfanxv(chara[]);chara[10000];charc[10... #include<stdio.h>
#include<string.h>
int main()
{
char fanxv(char a[]);
char a[10000];
char c[10000];
gets(a);
c=fanxv(a);
puts(c);
return 0;
}

char fanxv(char a[])
{
char z[10000];
int j;
int zhong;
for(j=0;j<=10000;j++)
{
if(a[j]='0')
zhong=j;
break;
}
for(int i=0;i<=10000;i++)
{
z[i]=a[zhong];
zhong--;
if(zhong=0)
break;
}
return(z);
}

错误如下:
--------------------配置: mingw5 - CUI Debug, 编译器类型: MinGW--------------------

正在编译 F:\c程序\反序.cpp...
[Error] F:\c程序\反序.cpp:9: error: incompatible types in assignment of `char' to `char[10000]'
[Error] F:\c程序\反序.cpp:32: error: invalid conversion from `char*' to `char'
[Warning] F:\c程序\反序.cpp:16: warning: address of local variable `z' returned
[Warning] F:\c程序\反序.cpp:33:2: warning: no newline at end of file

编译中止 F:\c程序\反序.cpp: 2 个错误, 2 个警告
展开
 我来答
塔云韶弥洋
2019-10-29 · TA获得超过3万个赞
知道小有建树答主
回答量:1.1万
采纳率:31%
帮助的人:835万
展开全部
正确的代码应该是这样:
#include<stdio.h>
main()
{
int
n=0;
char
ch;
while((ch=getchar())!='\n')
{if(ch>='0'&&ch<='9')
n=n*10+ch-'0';
}
printf("%d",n);
}
至于这句n=n*10+ch-'0';
ch-'0'就是把字符型的数字转换成整形的数字,因为getchar()接受的是char型的。
举个例子,比如你输入“
1
2
3”,程序开始检测:
跳过第一个空格,检测到字符'1',通过'1'-'0'得到整形数字1,n
=
0*10
+
1
=
1.
跳过第二个空格,检测到字符'2',通过'2'-'0'得到整形数字2,n
=
1*10
+
2
=
12.
跳过第三个空格,检测到字符'3',通过'3'-'0'得到整形数字3,n
=
12*10
+
3
=
123.
输出n为123.
wchyumo2011
2015-12-06 · TA获得超过2万个赞
知道大有可为答主
回答量:5810
采纳率:79%
帮助的人:2696万
展开全部

都是一些基础性错误

比如:

1、一个等号是赋值,两个等号用来判断是否相等

2、if-等语句没有加大括号

3、字符串结束标识是'\0',不是字符'0'

4、字符串赋值时,在最后要加上字符串结束符

5、子函数局部变量的地址返回后可能无效

#include<stdio.h>
#include<string.h>
int main()
{
void fanxv(char a[], char z[]);
char a[10000];
char c[10000];
gets(a);
fanxv(a, c);
puts(c);
return 0;
}

void fanxv(char a[], char z[])
{
int j;
int zhong;
for (j = 0; j <= 10000; j++)
{
if (a[j] == '\0')/////////////////
{
zhong = j;
break;
}
}
j--;
for (int i = 0; i <= 10000; i++)
{
z[i] = a[j];
j--;
if (j< 0)///////////
break;
}
z[zhong] = '\0';
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友68d8d32
2015-12-06 · TA获得超过387个赞
知道小有建树答主
回答量:300
采纳率:100%
帮助的人:274万
展开全部
第一个Error:类型不匹配。fanxv函数返回的是char类型,c是字符数组,当然无法被赋值。
第二个Error:z是字符数组,fanxv函数返回的应该是char类型。
第一个Waring:z是本地变量,函数中临时申请的,函数结束则z数组内存就会被释放,返回这个没有意义。
第二个Waring:最后多打个回车吧。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式