我有一个关于从main调用C函数的问题,我想我有这个问题,因为我仍然不习惯程序语言,但我根本无法解决这个问题。错误是“未声明的数字(首次使用此功能)“和”number2未声明(首次使用此功能)“。
代码:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int add(int number,int number2){
int answer;
answer = number + number2;
printf("Enter a number\n");
scanf("%d",&number);
printf("Enter another number\n");
scanf("%d",&number2);
printf("The result of those numbers are %d\n",answer);
}
int main()
{
add(number,number2);
return 0;
}
答案 0 :(得分:2)
更改主函数以在那里声明变量,如下所示:
int main()
{
int number = 1, number2 = 2;
add(number,number2);
return 0;
}
答案 1 :(得分:0)
C要求你&#34;声明&#34;每个变量在使用之前。这涉及一个至少指定变量名称及其类型的语句。例如:
int number;
您的编译器抱怨您没有对number
或number1
执行此操作。
此外,为了定义程序的行为,必须在使用它之前为每个变量赋值。例如,
number = 1;
你也不这样做,但是如果你不纠正它,编译器可能会警告你,它也很乐意做你说的并制作一个程序表现出不明确的行为。
答案 2 :(得分:0)
此代码确实不正确
int add(int number,int number2){
int answer;
answer = number + number2;
printf("Enter a number\n");
scanf("%d",&number);
printf("Enter another number\n");
scanf("%d",&number2);
printf("The result of those numbers are %d\n",answer);
}
它接受两个数字作为函数的输入。添加它们,然后要求用户2输入一些数字并显示添加函数调用中传递的数字的结果
你的意思是:
int add(){
int answer, number,numer2;
printf("Enter a number\n");
scanf("%d",&number);
printf("Enter another number\n");
scanf("%d",&number2);
printf("The result of those numbers are %d\n",answer);
}
或
int add(int number,int number2){
int answer;
answer = number + number2;
printf("The result of those numbers are %d\n",answer);
}
并将提示放在主
中main()
{
int number,number2;
printf("Enter a number\n");
scanf("%d",&number);
printf("Enter another number\n");
scanf("%d",&number2);
add(number,number2)
}
答案 3 :(得分:0)
你不需要conio.h
#include <stdio.h>
#include <stdlib.h>
//#include <conio.h>
int add(int number,int number2) {
return number + number2;
}
int main()
{
int answer;
int number, number2 = 0;
printf("Enter a number\n");
scanf("%d",&number);
printf("Enter another number\n");
scanf("%d",&number2);
answer = add(number,number2);
printf("The result of those numbers are %d\n",answer);
return 0;
}
答案 4 :(得分:0)
在您的主要内容中执行此操作var securedRoutes = require('express').Router()
securedRoutes.use(/* auth-middleware from above */)
securedRoutes.get('path1', /* ... */)
app.use('/secure', securedRoutes)
app.get('public', /* ... */)
// example.com/public // no-auth
// example.com/secure/path1 // requires auth
但主要知道您的变量是什么?你需要声明它们:
add(number,number2);
您希望函数添加2个数字,这就是函数应该执行的操作:
int number, number2;
您不应该使用您的用户输入添加功能,或者创建一个新功能,如:
int add(int number1, int number2) {
return number1 + number 2;
}
或者只是将它们放在main中:
int getNumberFromUser(const char *promptText) {
int userInput;
printf("%s:", promptText);
scanf("%d", &userInput);
return userInput;
}
答案 5 :(得分:0)
您的代码中存在一些误解。
首先,int add()
{
int answer, number, number2;
...
的参数不用作参数。它们用作局部变量。相反,写明功能明确指出:
answer
其次, printf("Enter a number\n");
scanf("%d", &number);
printf("Enter another number\n");
scanf("%d", &number2);
answer = number + number2;
printf("The result of those numbers are %d\n",answer);
是根据参数计算的,而不是从读取的值计算出来的。虽然这在计算上是有效的,但却令人困惑。你想要这个逻辑真正做什么?在这里,我已经将 answer 计算移到读取输入之后:
add()
这会忽略最初传递给>>> np.repeat([np.arange(1, 4)], 4, 0)
array([[1, 2, 3],
[1, 2, 3],
[1, 2, 3],
[1, 2, 3]])
的参数。