| 
 | 
 
 
发表于 2023-11-11 16:52:08
|
显示全部楼层
 
 
 
这段代码无法正常运行的原因是在第二个for循环中存在逻辑错误。在这个循环中,使用了n=0来重置循环,这样会导致循环条件n<9失效。同时,还存在m未初始化的问题。以下是修改后的代码: 
 
- #include<stdio.h>
 
 - int main(void)
 
 - {
 
 -     /*******[color=Red]Begin[/color]*******/
 
 -     int a[10],n,m;
 
 -     for(n=0;n<10;n++){
 
 -         scanf("%d",&a[n]);
 
 -     }
 
 -     for(n=0;n<9;n++){
 
 -         for(int i=0;i<9-n;i++){
 
 -             if(a[ i]<a[i+1]){
 
 -                 m = a[i+1];
 
 -                 a[i+1] = a[ i];
 
 -                 a[ i] = m;
 
 -             }
 
 -         }
 
 -     }
 
 -     for(n=0;n<10;n++){
 
 -         printf("%d ",a[n]);
 
 -     }
 
  
-     /*******[color=Red]End[/color]********/
 
 -     return 0;
 
 - }
 
 
  复制代码 
 
在修改后的代码中,我们使用了嵌套的for循环来进行冒泡排序,同时修复了变量m未初始化和重置循环计数器n的问题。 |   
 
 
 
 |