我正在制作一种新的编程语言以获得乐趣,当我输入'print +:'时,我会插入Pfunc1plus和Pfunc2plus,当你同时注册两个投掷数时,错误“程序已停止工作......”
#include <stdio.h>
#include <stdlib.h>
int main(){
char sysF[300];
char Pfunc[300];
int Pfunc1plus; int Pfunc2plus;
scanf("%s",sysF);
// Print
if (strcmp(sysF, "print:") == 0){
scanf("%s",Pfunc);
system("cls");
printf("%s",Pfunc);
}
// Error code
if(strcmp(sysF, "print+:") == 0) {
scanf("%i %i",Pfunc1plus,Pfunc2plus);
printf("%i %i",Pfunc1plus+Pfunc2plus);
} // Error code
system("pause >nul");
return 0;
}
答案 0 :(得分:3)
两件事:
scanf("%i %i",Pfunc1plus,Pfunc2plus);
scanf
将地址带到变量中,因此您需要在&
前面放置一个地址运算符(Pfunc1plus
)和{ {1}}。
Pfunc2plus
您有两个整数格式说明符,但只传递一个参数(printf("%i %i",Pfunc1plus+Pfunc2plus);
)。如果要打印两者,请将加法运算符更改为逗号;如果您确实要打印总和,请删除Pfunc1plus+Pfunc2plus
。