C++计算机编程

来源:百度知道 编辑:UC知道 时间:2024/05/30 05:43:30
帮我看看错哪里了,谢谢!

#include<iostream>
using namespace std;
const int N=1000000;

void ff(char a){
int s=0;

for(int i=0;i<N;++i){
s=(a[i]-'0')+s;}
if(s<10)cout<<s<<endl;
ff(s+'0');

}
int main(){
char a[N];
cin>>a[0];
if(a[0]!='0')
for(i=0;i<N;++i)
cin>>a[i];
ff(a);
system("pause");
return 0;
}

不是很确定你的FF涵数究竟要实现什么功能.

为什么FF还要调用FF呢? 递归?

目前问题有几点:
1 涵数参数不对, 要传递数组应该 char *
2 MAIN涵数里 I 没有声明.
3 就FF里调用FF? 参数什么的有问题.

给出完整代码如下. 实现输入数字将它们求和:

#include<iostream>
using namespace std;
const int N=10;

void ff(char *a){
int s=0;

for(int i=0;i<N;++i){
s=(a[i]-'0')+s;}
if(s<10)cout<<s<<endl;

}
int main(){
char a[N];
cin>>a[0];
if(a[0]!='0')
for(int i=1;i<N;++i)
cin>>a[i];
ff(a);
system("pause");
return 0;
}

错的比较多
1.(a[i]-'0'),a 是一个字符变量,不能做数组名(地址)的
2.for(i=0;i<N;++i) ,main函数中的i未定义
3.由于第1点,你的ff(a)调用是错误的
4.调用 system函数需要#include <stdlib.h>