这代码为什么报错了但运行好好的 C语言

img

可以输出数组,但它为什么提示我要在 )前加 ;
而且我没加 \n 换行符它也直接给我换行了

for (i=0;i<10;i++)
是分号!!!

你检查一下for语句

供参考:

img

【以下回答由 GPT 生成】

问题原因:C语言中的"*(a+i)"是一种间接引用的方式,表示取数组a中索引为i的元素的值。编译器提示缺少")"在"("前面的错误,是因为编译器无法正确识别该语句的优先级。

解决方案:将"*(a+i)"这种间接引用的方式改为"a[i]"的形式。这样可以保持代码的可读性,同时也能避免编译器的错误提示。

修改后的代码如下:

#include <stdio.h>

int main() {
    int a[10]={1,2,3,4,5,6,7,8};
    int i;

    for(i=0; i<10; i++) {
        printf("%d ", a[i]);
    }

    return 0;
}

此时,代码应该可以正常编译和运行,输出结果为:"1 2 3 4 5 6 7 8 "。

关于换行符的问题,printf函数在输出时,默认会在每个格式化字符串的末尾添加一个换行符"\n"。所以即使你没有在代码中添加换行符,printf函数也会在每次输出后自动换行。

如果你不想要换行符,可以在printf函数的格式化字符串中使用"%d ",即在"%d"后面添加一个空格,这样输出的数字之间就没有换行符。修改后的代码如下:

#include <stdio.h>

int main() {
    int a[10]={1,2,3,4,5,6,7,8};
    int i;

    for(i=0; i<10; i++) {
        printf("%d ", a[i]);
    }

    return 0;
}

这样输出的结果为:"1 2 3 4 5 6 7 8",数字之间没有换行符。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^