当我编译,运行并输入变量“ C” [Chost]

问题描述 投票:0回答:1

当我在Dev C ++中运行此程序时,它将执行直到提示输入变量“ C”的整数值。然后,我输入值,整个程序崩溃。没有语法错误;问题是当我不使用IF(条件)语句时运行正常。

[下图显示了我编译并运行程序时的输出的样子。] [1]

// Program to display patterns of numbers according to the input values #include <stdio.h> int main() { int i, j, in, ni, jn, nj, c; printf("For the statements for(i=ni;i<=/>=in;i++/--) and\n"); printf("For(j=nj;j<=/>=jn;j++/--),\n"); printf("\nEnter ni: "); scanf("%d", &ni); printf("\nEnter in: "); scanf("%d", &in); printf("\nEnter nj: "); scanf("%d", &nj); printf("\nEnter jn: "); scanf("%d", &jn); printf("\nSelect your choice for the type of for loop to be used:\n"); printf("\n01. for(i=ni;i<=in;i++) & for(j=nj;j<=jn;j++)\n"); printf("\n02. for(i=ni;i<=in;i++) & for(j=nj;j<=jn;j--)\n"); printf("\n03. for(i=ni;i<=in;i++) & for(j=nj;j>=jn;j--)\n"); printf("\n04. for(i=ni;i<=in;i++) & for(j=nj;j>=jn;j++)\n"); printf("\n05. for(i=ni;i<=in;i--) & for(j=nj;j<=jn;j++)\n"); printf("\n06. for(i=ni;i<=in;i--) & for(j=nj;j<=jn;j--)\n"); printf("\n07. for(i=ni;i<=in;i--) & for(j=nj;j>=jn;j--)\n"); printf("\n08. for(i=ni;i<=in;i--) & for(j=nj;j>=jn;j++)\n"); printf("\n09. for(i=ni;i>=in;i++) & for(j=nj;j<=jn;j++)\n"); printf("\n10. for(i=ni;i>=in;i++) & for(j=nj;j<=jn;j--)\n"); printf("\n11. for(i=ni;i>=in;i++) & for(j=nj;j>=jn;j--)\n"); printf("\n12. for(i=ni;i>=in;i++) & for(j=nj;j>=jn;j++)\n"); printf("\n13. for(i=ni;i>=in;i--) & for(j=nj;j<=jn;j++)\n"); printf("\n14. for(i=ni;i>=in;i--) & for(j=nj;j<=jn;j--)\n"); printf("\n15. for(i=ni;i>=in;i--) & for(j=nj;j>=jn;j--)\n"); printf("\n16. for(i=ni;i>=in;i--) & for(j=nj;j>=jn;j++)\n"); printf( "\nInput must be between 1 and 16 inclusive(Including 1 and 16 too)\n"); scanf("%d", &c); if (c == 1) { for (i = ni; i <= in; i++) { for (j = nj; j <= jn; j++) { printf("%d", i); } printf("\n"); } } else if (c == 2) { for (i = ni; i <= in; i++) { for (j = nj; j <= jn; j--) { printf("%d", i); } printf("\n"); } } else if (c == 3) { for (i = ni; i <= in; i++) { for (j = nj; j >= jn; j--) { printf("%d", i); } printf("\n"); } } else if (c == 4) { for (i = ni; i <= in; i++) { for (j = nj; j >= jn; j++) { printf("%d", i); } printf("\n"); } } else if (c == 5) { for (i = ni; i <= in; i--) { for (j = nj; j <= jn; j++) { printf("%d", i); } printf("\n"); } } else if (c == 6) { for (i = ni; i <= in; i--) { for (j = nj; j <= jn; j--) { printf("%d", i); } printf("\n"); } } else if (c == 7) { for (i = ni; i <= in; i--) { for (j = nj; j >= jn; j--) { printf("%d", i); } printf("\n"); } } else if (c == 8) { for (i = ni; i <= in; i--) { for (j = nj; j >= jn; j++) { printf("%d", i); } printf("\n"); } } else if (c == 9) { for (i = ni; i >= in; i++) { for (j = nj; j <= jn; j++) { printf("%d", i); } printf("\n"); } } else if (c = 10) { for (i = ni; i >= in; i++) { for (j = nj; j <= jn; j--) { printf("%d", i); } printf("\n"); } } else if (c = 11) { for (i = ni; i >= in; i++) { for (j = nj; j >= jn; j--) { printf("%d", i); } printf("\n"); } } else if (c = 12) { for (i = ni; i >= in; i++) { for (j = nj; j >= jn; j++) { printf("%d", i); } printf("\n"); } } else if (c = 13) { for (i = ni; i >= in; i--) { for (j = nj; j <= jn; j++) { printf("%d", i); } printf("\n"); } } else if (c = 14) { for (i = ni; i >= in; i--) { for (j = nj; j <= jn; j--) { printf("%d", i); } printf("\n"); } } else if (c = 15) { for (i = ni; i >= in; i--) { for (j = nj; j >= jn; j--) { printf("%d", i); } printf("\n"); } } else if (c = 16) { for (i = ni; i >= in; i--) { for (j = nj; j >= jn; j++) { printf("%d", i); } printf("\n"); } } else if (c < 1 || c > 16) { printf("Invalid choice input. Please enter numbers between 1 and 16 only."); } return (0); }
    
c for-loop if-statement dev-c++
1个回答
2
投票
<source>:34:16: warning: format specifies type 'int *' but the argument has type 'int' [-Wformat] scanf("%d",c); ~~ ^ <source>:134:18: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] else if(c=10) ~^~~ <source>:134:18: note: place parentheses around the assignment to silence this warning else if(c=10) ^ ( ) <source>:134:18: note: use '==' to turn this assignment into an equality comparison else if(c=10) ^ == <source>:145:18: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] else if(c=11) ~^~~ <source>:145:18: note: place parentheses around the assignment to silence this warning else if(c=11) ^ ( ) <source>:145:18: note: use '==' to turn this assignment into an equality comparison else if(c=11) ^ == <source>:156:18: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] else if(c=12) ~^~~ <source>:156:18: note: place parentheses around the assignment to silence this warning else if(c=12) ^ ( ) <source>:156:18: note: use '==' to turn this assignment into an equality comparison else if(c=12) ^ == <source>:167:18: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] else if(c=13) ~^~~ <source>:167:18: note: place parentheses around the assignment to silence this warning else if(c=13) ^ ( ) <source>:167:18: note: use '==' to turn this assignment into an equality comparison else if(c=13) ^ == <source>:178:18: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] else if(c=14) ~^~~ <source>:178:18: note: place parentheses around the assignment to silence this warning else if(c=14) ^ ( ) <source>:178:18: note: use '==' to turn this assignment into an equality comparison else if(c=14) ^ == <source>:189:18: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] else if(c=15) ~^~~ <source>:189:18: note: place parentheses around the assignment to silence this warning else if(c=15) ^ ( ) <source>:189:18: note: use '==' to turn this assignment into an equality comparison else if(c=15) ^ == <source>:200:18: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] else if(c=16) ~^~~ <source>:200:18: note: place parentheses around the assignment to silence this warning else if(c=16) ^ ( ) <source>:200:18: note: use '==' to turn this assignment into an equality comparison else if(c=16) ^ == <source>:34:16: warning: variable 'c' is uninitialized when used here [-Wuninitialized] scanf("%d",c); ^ <source>:5:26: note: initialize the variable 'c' to silence this warning int i,j,in,ni,jn,nj,c; ^ = 0 9 warnings generated.


最新问题
© www.soinside.com 2019 - 2025. All rights reserved.