【发布时间】:2015-01-27 13:55:56
【问题描述】:
所以我的学校作业如下:
编写一个程序,要求用户输入一系列单个数字,没有任何分隔。将输入读取为 C 字符串对象。程序应该显示字符串中所有个位数字的总和。例如,如果用户输入 2518,则程序应显示 16,即 2、5、1 和 8 的总和。程序还应显示字符串中的最高位和最低位。
示例输出:
输入一系列数字,它们之间没有空格。
2518
这些数字的总和是 16
最高位是8
最低位是1
这是我的代码:
#include<iostream>
#include <cstdlib>
#include<cstring>
using namespace std;
char input[100];
int x[100];
void user_input(char[]);
void char_int_conversion(char[],int[]);
void lowest_highest_digit(int[]);
int main()
{
user_input(input);
char_int_conversion(input,x);
lowest_highest_digit(x);
return 0;
}
void user_input(char input[])
{
cout<<"Enter a series of digits with no spaces between them";
cin>>input;
}
void char_int_conversion(char input[],int x[])
{
for(int i=0;i<=100,i++;)
x[i]=atoi(input[i]);
}
void lowest_highest_digit(int x[])
{
int lowest=x[0];
int highest=x[0];
int total=0;
for(int i=0;i<=100,i++;)
if(x[i]<lowest)
lowest=x[i];
for(int i=0;i<=100,i++;)
if(x[i]>highest)
highest=x[i];
for(int i=0;i<=100,i++;)
total = total+x[i];
cout<<"The sum of those digits is: "<<total<<endl
<<"The highest digit is: "<<highest<<endl
<<"The lowest digit is: "<<lowest<<endl;
}
在第 31 行,我使用 atoi 函数将 char 数组输入转换为整数数组 x,我收到一条错误消息,提示“char 类型的参数与“const char”类型的参数不兼容。
如果我从 atoi(input[i]) 中删除 [i],我可以构建程序,但所有输出变量都等于 0;
任何帮助将不胜感激!
【问题讨论】:
-
为什么
atoi()要被**括起来? -
啊,我的程序中没有这些,一定是我发布问题时犯的错误。
-
为什么是全局变量?为什么在 C++ 代码中使用 C 字符串?
标签: c++