【发布时间】:2019-04-10 07:55:35
【问题描述】:
这个程序会扫描一些字符,并显示有多少'x' 被输入。
我想你会更好地了解代码而不是我解释。
#include<stdio.h>
main()
{
int n,i,t=0;
scanf("%d",&n);
char ara[n];
for(i=0;i<n;i++)
{
scanf("%c", &ara[i]);
if(ara[i]=='x') t++;
}
printf("%d",t);
}
假设 n = 5 并且字符是 "xxxxxx"。在这种情况下,t 的值应该是5。但它显示4。
另一件事是,如果您删除第一个 scanf 语句(第 5 行)并在代码中的其他任何位置手动设置 n = 5 的值:
int n,i,t=0;
//scanf("%d",&n);
n = 5;
然后t 的值变为5 导致正确的输出。外部scanf函数是否有可能影响for循环内部的scanf函数?
【问题讨论】:
-
您的输出是 100% 纯文本。请不要粘贴巨大的屏幕截图来显示 4 行测试。相反,您可以轻松地将文本直接复制并粘贴到问题中。
-
好的!以后我会记得的:)
-
现在编辑您的问题还为时不晚。 :) 只需单击问题下方的“编辑”,然后将文本图像替换为文本本身。
-
请注意,您应该使用
main的正确签名之一,例如int main(void)。
标签: c for-loop variable-assignment