Онлайн компилятор C

#include <stdio.h> int main() { const int n = 10; int arr[n]; int i,j,c; for (i = 0; i < 10; i++) { scanf("%d", &arr[i]); } for(i=0;i<9;i++){ for(j=0;j<9;j++){ if (arr[j]%10>arr[j+1]%10){ c=arr[j]; arr[j]=arr[j+1]; arr[j+1]=c; } } } for(i=0;i<10;i++){ printf("%d",arr[i]); if (i!=9){ printf(" "); } printf("\n"); return 0; }
这段代码的功能是:输入10个整数,然后根据每个数的个位数字(即除以10的余数)进行冒泡排序,最后输出排序后的结果。

代码中存在一个语法错误,导致程序无法正常编译运行。

- 在最后一个 `for` 循环内部,`printf("\n");` 和 `return 0;` 被错误地放在了循环体内,而不是循环结束后。这会导致第一次循环迭代时就输出换行并结束程序。你需要检查大括号的配对,确保 `printf("\n");` 和 `return 0;` 在 `for` 循环之外。