gpt4 book ai didi

c - 我的程序有什么错误?

转载 作者:行者123 更新时间:2023-11-30 20:12:23 25 4
gpt4 key购买 nike

我写了这个 C 程序:

main()
{
int i,k;
char a[]="ilovefootbalonly\n";
printf("enter 1 or 2\n");
scanf("%d",&k);
switch(k)
{
case'1':for(i=0;i<=16;i++)
{
i+=1;
printf("%-16.*s\n",i,a);
}
break;
case'2':for(i=16;i>=0;i--)
{
i+=1;
printf("%*.*s\n",16,i,a);

}
break;
}

}

我希望输入 1 后输出是这样的:

i

il

ilo

ilov

.

.

.

.

ilovefootbal

尽管我的程序编译时没有错误,但是当我运行它时,在输入12后,它就停在那里,那么我在哪里犯了错误呢?

我是堆栈溢出和 C 的新手,所以如果您在发布此类问题时原谅任何小错误,我将不胜感激。

最佳答案

您的案例标签不正确。您指的是 1 和 2,而不是 '1''2'。后者是字符文字(数值为 49 和 50)。

此外,由于“football”的拼写错误,您的字符串实际上由 16 个字符组成(加上一个终止符)。要么解决这个问题,要么将循环运行到 15 而不是 16。

另一件事是,情况 2 中的循环永远不会终止:i-- 将取消循环体中的 i += 1。同样,情况 1 将以两倍于预期的频率运行索引。

并且请考虑使用 int main() 作为函数原型(prototype)。

关于c - 我的程序有什么错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35557105/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com