模块功能不返回答案 #包括 #包括 #包括 func(int x,int apple); int main() {int x,苹果; scanf(“%d”,x); func(x,苹果); 如果(苹果==0) printf(“是”); else if(apple==1) printf(“不!”); } func(整数x,整数苹果) { 如果((x%7)==0 | |(x%11)==0 | |(x%13)==0) 苹果=0; 其他的 苹果=1; }
整个过程的思想是,函数测试输入的值x是7、11还是13的倍数,并给出结果 该函数工作得很好(编译器没有检测到错误,启动得很好),但我在编译器窗口(输入任何值后)得到的结果是进程返回1,而没有返回任何其他值。在此之前,它给了我一个windows错误,我正在做的项目崩溃了 我几乎被迫使用指针,那么我做错了什么 谢谢你的帮助模块功能不返回答案 #包括 #包括 #包括 func(int x,int apple); int main() {int x,苹果; scanf(“%d”,x); func(x,苹果); 如果(苹果==0) printf(“是”); else if(apple==1) printf(“不!”); } func(整数x,整数苹果) { 如果((x%7)==0 | |(x%11)==0 | |(x%13)==0) 苹果=0; 其他的 苹果=1; },c,function,pointers,crash,C,Function,Pointers,Crash,整个过程的思想是,函数测试输入的值x是7、11还是13的倍数,并给出结果 该函数工作得很好(编译器没有检测到错误,启动得很好),但我在编译器窗口(输入任何值后)得到的结果是进程返回1,而没有返回任何其他值。在此之前,它给了我一个windows错误,我正在做的项目崩溃了 我几乎被迫使用指针,那么我做错了什么 谢谢你的帮助 格式说明符“%d”与提供给scanf()的参数类型不匹配,当必须是int*时指定int:这是未定义的行为。通过检查scanf()的返回值,将x的地址传递给,并确保为x分配了一个
- 格式说明符
与提供给“%d”
的参数类型不匹配,当必须是scanf()
时指定int*
:这是未定义的行为。通过检查int
的返回值,将scanf()
的地址传递给,并确保为x
分配了一个值,该值返回成功分配的数量:x
#include <stdio.h> #include <stdlib.h> #include <math.h> func (int x, int apple); int main() {int x,apple; scanf("%d",x); func (x,apple); if (apple==0) printf("Yes"); else if (apple==1) printf("no!"); } func (int x,int apple ) { if ((x%7)==0||(x%11)==0||(x%13)==0) apple=0; else apple=1; }
的状态返回类型为func()
void
- 将
的地址传递给apple
(并将参数更改为func()
),以便调用方可以看到int*apple
中对func()
所做的任何更改:apple
if (scanf("%d",&x) == 1) { }
scanf
。
void func (int x, int* apple)
{
/* Dereference 'apple' for assignment. */
*apple = 0;
}