制作一个只执行三个有效命令的C程序
这些命令区分大小写。以下是命令:制作一个只执行三个有效命令的C程序,c,string,C,String,这些命令区分大小写。以下是命令: 加x,y;其中x和y是文字整数值,ADD是全部 大写字母。“添加”命令不显示结果,但 仅对x和y的任何值执行加法。 操作的结果保存在一个名为 斧头 PRT AX-显示AX的值 退出–退出程序 程序应继续向用户询问有效命令,直到用户键入退出 来自用户的有效输入示例: 加3,5 加4,3 PRT AX 出口 来自用户的无效输入示例: 加3,4 加上x,4 加上x,y 显示斧头 PRT ax PRT y PRT 4 出口 我已经试过做了,但不幸的是只做了ADD
- 加3,5
- 加4,3
- PRT AX
- 出口
- 加3,4
- 加上x,4
- 加上x,y
- 显示斧头
- PRT ax
- PRT y
- PRT 4
- 出口
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char str[20];
char cmd[10], x[10], y[10], zip[32], set[32];
int AX, i, j;
int main (void) {
while (str != 'EXIT') {
scanf ("%[^\n]%*c", str);
if (str != 'PRT') {
calc();
}
}
return 0;
}
int add(int x, int y){
return x + y;
}
int calc() {
strcpy(cmd, strtok(str , " "));
strcpy(x, strtok(NULL, ","));
strcpy(y , strtok(NULL, ","));
i = atoi(x);
j = atoi(y);
if ((strcmp (cmd, "ADD") == 0) && (strcmp (cmd, "add") < 0)) {
AX = add(i,j);
}
return AX;
}
// i dont know what i did with this or what i did it for T.T
void print() {
strcpy(cmd, strtok(str , " "));
strcpy(zip, strtok(NULL, " "));
if (strcmp (cmd, "PRT") == 0 && strcmp (zip, "AX") == 0) {
printf("%d\n", AX);
}
}
#包括
#包括
#包括
char-str[20];
char cmd[10],x[10],y[10],zip[32],set[32];
int AX,i,j;
内部主(空){
while(str!=“退出”){
scanf(“%[^\n]%*c”,str);
如果(str!=“PRT”){
计算();
}
}
返回0;
}
整数相加(整数x,整数y){
返回x+y;
}
int calc(){
strcpy(cmd,strtok(str,”);
strcpy(x,strtok(NULL,“,”);
strcpy(y,strtok(NULL,“,”);
i=atoi(x);
j=原子(y);
如果((strcmp(cmd,“ADD”)==0)和&(strcmp(cmd,“ADD”)<0)){
AX=加(i,j);
}
归还斧头;
}
//我不知道我用这个做了什么,也不知道我用这个做了什么
作废打印(){
strcpy(cmd,strtok(str,”);
strcpy(zip,strtok(NULL)(“”);
如果(strcmp(cmd,“PRT”)==0&&strcmp(zip,“AX”)==0){
printf(“%d\n”,AX);
}
}
让em猜一猜-您没有看到任何输出
strcpy(zip, strtok(NULL, " "));
if (strcmp (cmd, "PRT") == 0 && strcmp (zip, "AX") == 0) {
printf("%d\n", AX);
}
你想用zip
实现什么?你把它分配给一个空字符串,然后只打印AX,如果它等于zip,它永远不会是
请注意,您应该更好地用括号括起来(阅读运算符优先级),因此
但是,真的,你只需要忘记拉链和
void print() {
printf("%d\n", AX);
}
你不能在C语言中使用
!=
来比较字符串。请仔细阅读strcmp()
,并了解一般字符串。或者更确切地说,你不能简单地猜测C语言语法,你必须知道它。str!=“EXIT”
没有意义,也不会编译。请发布实际编译的真实代码。scanf(%[^\n]]*C),str;
将开始一个无限循环,只需输入“\n”
即可。建议fgets()
。
void print() {
printf("%d\n", AX);
}