谁来帮我看看我的这个程序在gcc下调试出现 "段错误"

//用三种循环求1+2+3...+100#include <stdio.h>#include <string.h>int main(int argc, char **argv){ int i, sum = 0; i = 1; if (argc < 2) printf( "input ✀./ for✀ or ✀./ while✀ or ✀./ goto✀ or ✀./ dowhile✀");//for 循环 if (strcmp(argv[1], "for") == 0) { for (; i <= 100; i++) { sum += i; } fprintf(stdout, "✀for✀:the sum is %d尀n", sum); }//while 循环 else if (strcmp(argv[1], "while") == 0) { while (i <= 100) { sum += i; i++; } fprintf(stdout, "✀while✀:the sum is %d尀n", sum); }//goto 循环 else if (strcmp(argv[1], "goto") == 0) { loop:if (i <= 100) { sum += i; i++; goto loop; } fprintf(stdout, "✀goto✀:the sum is %d尀n", sum); }//do while 循环 else if (strcmp(argv[1], "dowhile") == 0) { do { sum += i; i++; } while (i <= 100); fprintf(stdout, "✀do while✀:the sum is %d尀n", sum); } else { fprintf(stdout, "input ✀./ for✀ or ✀./ while✀ or ✀./ goto✀ or ✀./ do while✀"); } return 0;}if (argc < 2) printf( "input ✀.⼀ for✀ or ✀.⼀ while✀ or ✀.⼀ goto✀ or ✀.⼀ dowhile✀");我是问当我 .⼀ 不带参数的时候为什么出现段错误 程序应该是这样⼀⼀用三种循环求1+2+3...+100#include <stdio.h>#include <string.h>int main(int argc, char **argv){ int i, sum = 0; i = 1; if (argc < 2) { printf("input ✀.⼀ for✀ or ✀.⼀ while✀ or ✀.⼀ goto✀ or ✀.⼀ dowhile✀尀n"); return -1; }
2026年09月25日 18:32
有1个网友回答
网友(1):

看看

运行的时候要带参数。假定你的exe是add.exe
你点开始->运行 在运行编辑框中输入add.exe for

if (argc < 2)
{
printf( "input './ for' or './ while' or './ goto' or './ dowhile'");
return -1;
}