| 
 | 
 
 
发表于 2022-8-9 10:39:41
|
显示全部楼层
 
 
 
 本帖最后由 柿子饼同学 于 2022-8-9 10:43 编辑  
 
看看别的吧 qwq 
这代码太阴间了 
帮你改了 排版 , 以后照着别人的代码写 , 不要再这样写了  
你这个主要问题是那个 for 循环如果没加大括号就只执行最近的一个语句 
即使有语句在它下面也不会执行 
另外 , 你的 main 的 int 没加 , 后面 return 0; 没加 
建议以后看到循环就加大括号 , 至少清楚一点 
千万不要 不要 不要 这么写代码了   
- #include<stdio.h>
 
  
- int main(){
 
 -     int i, j, p, q, s, n;
 
 -     int a[11] = {127, 3, 6, 28, 54, 68, 87, 105, 162, 18};
 
  
-     for(i = 0; i < 10; i++){
 
 -         p = i;
 
 -         q = a[i];
 
 -         for(j = i+1; j < 10; j++){
 
 -             if(q < a[j]){
 
 -                 p = j;
 
 -                 q = a[j];
 
 -             }
 
 -         }
 
 -         if(p != i){
 
 -             s = a[i];
 
 -             a[i] = a[p];
 
 -             a[p] = s;
 
 -         }
 
 -         printf("%d ",a[i]);
 
 -     }
 
  
-     printf("\ninput number:\n");
 
 -     scanf("%d", &n);
 
  
-     for(i = 0; i < 10; i++){
 
 -         if(n > a[i]){
 
 -             for(s = 9; s >= i; s--){
 
 -                 a[s+1] = a[s];
 
 -             } 
 
 -             break; // 你现在知道为什么了吧
 
 -         }
 
 -     }
 
 -     a[i] = n;
 
 -     for(i = 0; i <= 10; i++){
 
 -         printf("%d ", a[i]);
 
 -     }
 
 -     printf("\n");
 
  
-     return 0;
 
 - }
 
  复制代码 |   
 
 
 
 |