我在编程方面是个新手,我不太清楚该如何完成学校交给我的这份作业。
编写一个函数void print_min(unsigned char a,short b,int c)
,它打印“min of(a,b,c)=m”。 M是这3个数字中最小的一个。 对于计算和打印,使用函数int min(unsigned char a,short b,int c)
和printf
。
我试过了,但我似乎无法使它工作,因为它每次都出错。
这是我尝试使用的代码:
#include <iostream>
#include <fstream>
#include <stdio.h>
void print_min(unsigned char a, short b, int c)
{
int m = 0;
if( a < b ) m = a; else m = b;
if( c < m ) m = c;
}
int main()
{
unsigned char a; short b;int c;int M;
cin >> a;
cin >> b;
cin >> c;
M = print_min("a", b,c);
return 0;
}
有没有可能给我一些关于我需要做什么的指示。 提前谢谢!
您的程序存在多个问题
问题1:
print_min返回void,而您可能希望它返回int。
int print_min(unsigned char a, short b, int c)
{
int m = 0;
if( a < b )
m = a;
else
m = b;
if( c < m )
m = c;
return m;
}
问题2
M = print_min("a", b,c);
函数需要一个无符号字符,但您发送的是字符串文本“a”
M = print_min(a, b,c);
问题3
您需要在cin
之前显式指定std::
命名空间
int main()
{
unsigned char a; short b;int c;int M;
std::cin >> a;
std::cin >> b;
std::cin >> c;
M = print_min(a, b,c);
return 0;
}
问题4:
std::cin >> a;
读取字符时,您发送的是ascii值,而不是预期的数值。 最好对所有对象保持相同的类型int。
#include <iostream>
int print_min(int a, int b, int c)
{
int m = 0;
if( a < b )
m = a;
else
m = b;
if( c < m ) m = c;
return m;
}
int main()
{
int a; int b; int c; int M;
std::cin >> a;
std::cin >> b;
std::cin >> c;
M = print_min(a, b, c);
std::cout << "Smallest of 3 is = " << M << std::endl;
return 0;
}
我的理解是,您的任务是编写一个函数,该函数打印min of(a,b,c)=M
,并且M应该被a
或b
或c
替换,所以首先您肯定知道这句话将在print_min
函数中打印,而不是在main
函数中打印,因为print_min
返回一个void
类型。 而其他细节已由其他答案给出。 我想这个问题现在对你来说不会有什么不同。 希望你能快点解决。 :)