user-0 提问: 求大佬帮看代码错误

回复:
user: user-1
content: 希望对你有帮助：https://blog.csdn.net/it_xiangqiang/category_10581430.html 希望对你有帮助：https://blog.csdn.net/it_xiangqiang/category_10768339.html

user: user-2
content: #include<stdio.h> #include<string.h>  int main() {     int x[5]={4,8,9,1,2}, tmp;     char name[5][80]={"zhang","hei","haha","asas","qwe"};     char copy[80];     int i, j, max_idx;      for(i = 0; i < 5; i++){         printf("input the name:");         scanf("%s", name[i]);         printf("input the score:");         scanf("%d", &x[i]);     }      i = 0;     while(i<5){         max_idx = i;         for(j = i; j < 5; j++)             if (x[max_idx] < x[j])                 max_idx = j;         if (max_idx != i) {             tmp = x[i];             x[i] = x[max_idx];             x[max_idx] = tmp;             strcpy(copy, name[max_idx]);             strcpy(name[max_idx], name[i]);             strcpy(name[i], copy);         }          i++;     }     for(i = 0; i < 5; i++){         printf("%s %d\n",name[i], x[i]);     }     return 0; } 供参考～

user: user-2
content: #include<stdio.h> #include<string.h>  int main() {     int x[5]={4,8,9,1,2};     char name[5][80]={"zhang","hei","haha","asas","qwe"};     char copy[80];     int i=0;     int n, tmp;     int max;     /*for(i=0;i<5;i++){       printf("input the name:");       scanf("%s",&name[i]);       printf("input the score:");       scanf("%d",&x[i]);       }*/     while(i<5){         max=i;         for(n=i;n<5;n++){             if(x[max] < x[n]){                 max = n;                 /*                    if(x[max]>x[n]){                 //max=max;                 }else{                 max=n;                 }                 */             }             //printf("%d",max);             //             if (max != i) {                 tmp = x[i];                 x[i] = x[max];                 x[max] = tmp;                 strcpy(copy,name[max]);                 strcpy(name[max],name[i]);                 strcpy(name[i],copy);             }         }         i++;     }     for(n=0;n<5;n++){         printf("%s %d\n",name[n],x[n]);     }     return 0; } 供参考～ 楼主的排序有问题～

user: user-0
content: 引用 8 楼 qq_45798109的回复:[quote=引用 7 楼 qq_45850659 的回复:] [quote=引用 6 楼 qq_45798109的回复:][quote=引用 5 楼 qq_45850659的回复:][quote=引用 2 楼 qq_45798109的回复:]抱歉，我看错了，你循环之后，把i重新归为零 好的，谢谢。 请问那应该怎样输入汉字的名字呢[/quote] 中文的话，一个字占两个字符的[/quote] 我不知道应该怎么输入，char类型不是每一个就只有一个字符吗[/quote] 直接输入就好了，我这边运行的出来的[/quote] 谢谢，我也运行出来了。我以前输入的时候它会跳步骤。可能是以前没用#include<string>这个吧

user: user-0
content: 谢谢，我也运行出来了。我以前输入的时候它会跳步骤。可能是以前没用#include<string>这个吧

user: user-3
content: 引用 7 楼 qq_45850659 的回复:[quote=引用 6 楼 qq_45798109的回复:][quote=引用 5 楼 qq_45850659的回复:][quote=引用 2 楼 qq_45798109的回复:]抱歉，我看错了，你循环之后，把i重新归为零 好的，谢谢。 请问那应该怎样输入汉字的名字呢[/quote] 中文的话，一个字占两个字符的[/quote] 我不知道应该怎么输入，char类型不是每一个就只有一个字符吗[/quote] 直接输入就好了，我这边运行的出来的

user: user-0
content: 引用 6 楼 qq_45798109的回复:[quote=引用 5 楼 qq_45850659的回复:][quote=引用 2 楼 qq_45798109的回复:]抱歉，我看错了，你循环之后，把i重新归为零 好的，谢谢。 请问那应该怎样输入汉字的名字呢[/quote] 中文的话，一个字占两个字符的[/quote] 我不知道应该怎么输入，char类型不是每一个就只有一个字符吗

user: user-3
content: 引用 5 楼 qq_45850659的回复:[quote=引用 2 楼 qq_45798109的回复:]抱歉，我看错了，你循环之后，把i重新归为零 好的，谢谢。 请问那应该怎样输入汉字的名字呢[/quote] 中文的话，一个字占两个字符的

user: user-0
content: 引用 2 楼 qq_45798109的回复:抱歉，我看错了，你循环之后，把i重新归为零 好的，谢谢。 请问那应该怎样输入汉字的名字呢

user: user-4
content: name[5][80] name[80][5] 究竟是谁？

user: user-5
content: for(i=0;i<5;i++){     printf("input the name:");     scanf("%s",&name[i]);     printf("input the score:");     scanf("%d",&x[i]); } 这里i已经是5了，所以下面的循环进不去，重新置为0即可 增加  i = 0;     while(i<5){ ...

user: user-3
content: 抱歉，我看错了，你循环之后，把i重新归为零