我正在学习C,我做了一个简单的程序。它不起作用,我需要答案



我正在学习C,我制作了一个简单的程序,但它不起作用。这是代码:

#include <stdio.h>
#include <windows.h>
int main(int argc, char* argv[]){
system("title test");
printf("Arguments: %in", argc);
for (int i, int i <= %s, argv[i], i++){
switch (%s, argv[i]){
case 1:
printf("First Argument: %sn", argv)
}
}
return 0;
}

我打算添加更多内容,但首先我需要弄清楚哪里出了问题。请回答这个问题。我可能暂时不会回复,因为我马上就要睡觉了。很抱歉,如果我违反了任何规则,我是Stack Overflow的新手,我还没有阅读规则(如果有的话(。

顺便说一句,以下是错误:

| 7|error: expected identifier or '(' before 'int'|
| 7|error: expected expression before ',' token|
| 8|error: expected expression before '%' token|
|11|error: expected ';' before '}' token|
|  |=== Build failed: 4 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|

您的程序中有几个错误:

  • %s没有任何意义
  • for (int i, int i <= %s, argv[i], i++)是错误的,ddoes没有任何意义
  • 您的case中缺少一个break。这并没有害处,但一旦你添加更多的case,你就会遇到麻烦
  • 如果想要i < argc,则argc至少为1,因为argv[0]是程序的名称

你可能想要这个:

#include <stdio.h>
#include <windows.h>
int main(int argc, char* argv[]) {
system("title test");
printf("Arguments: %in", argc);
for (int i = 0; i < argc; i++) {  // use i < argc
switch (i) {
case 1:
printf("First Argument: %sn", argv[i]);
break;   // this was missing
}
}
return 0;
}

BTW开关/机箱应替换为if here:

for (int i = 0; i < argc; i++) {
if (i == 1) {
printf("First Argument: %sn", argv[i]);
}
}

首先,switch的语法如下:

switch (expression)
​{
case constant1:
// statements
break;
case constant2:
// statements
break;
.
.
.
default:
// default statements
} 

switch语句是如何工作的?

对表达式求值一次,并将其与每个事例标签的值进行比较。

如果存在匹配,则执行匹配标签之后的相应语句。例如,如果表达式的值等于constant2,则执行大小写constant2:之后的语句,直到遇到break。如果不匹配,则执行默认语句。

如果我们不使用break,则执行匹配标签之后的所有语句。

顺便说一下,switch语句中的默认子句是可选的。

第二:

for循环的语法为:

for(int i=(First value of control);i<=(Final value of control);Increment of control variable)

示例:

for(int i=0;i<=10;i++)

相关内容

最新更新