所以我输入一个数组和一个数字,它是一个名为" Write"的函数的数组长度。像这样:
string write (int n, char t[100])
为了保持简单,我只想在这个函数的帮助下写出数组的值,如下所示:
{
int i;
for (i=1;i<=n;i++) {
if (t[i]=='a') {
printf("%c" , t[i]);
}
}
return 0;
}
在int main()
中我唯一做过的事就是scanf
用n
变量给了n
一个&#39; a&#39;数组中的字符串值。我调用了写函数string write(n,t[100]);
这是整个&#34; main&#34; :
int main()
{
int i,n;
char t[100];
scanf("%i" ,&n);
for (i=1;i<=n;i++) {
t[i]='a';
}
string write (n,t[100]);
return 0;
}
我的问题是为什么不运行这个简单的程序我可以输入n
的值,但不会打印任何东西?我必须遗漏一些声明或声称我不熟悉C ++的函数。
答案 0 :(得分:1)
string write(n, t[100])
是函数的原型(省略类型)。如果你想调用write,你需要做类似
int main()
{
int i,n;
char t[100];
scanf("%i" ,&n);
for (i=1;i<=n;i++) {
t[i]='a';
}
write(n,t);
return 0;
}
将t[100]
传递给write
函数会将字符串的第100个元素赋予您的函数,这不是您想要做的。要传递整个字符串,只需使用t
。
另一个错误是你说write返回一个字符串。但是在代码中return 0
,您希望将编写原型修改为int write(int n, char t[100]);
答案 1 :(得分:1)
该行
string write (n,t[100]);
main
中的未调用write
函数 - 它定义了一个名为“{”的变量,其类型为string
,由n
组成}元素,每个元素都具有与t[100]
相同的值(这本身就是一个错误,因为它是100个元素数组的第101个元素)。
要调用该函数,您应该写
write(n, t);
你真的应该得到一本关于C ++的不错的入门书 在这里有很好的清单,你应该把它作为你找到它们的第一个练习。