鱼C论坛

 找回密码
 立即注册
查看: 3004|回复: 5

[已解决]哪里写错了??

[复制链接]
发表于 2022-10-28 11:34:11 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. #include<stdio.h>
  2. int main()
  3. {
  4.                 int n,i,temp=0,k=0,k1,jg;
  5.                 scanf("%d",&n); int a[n];
  6.                 for(i=0;i<n;i++)
  7.                 {
  8.                                 scanf("%d",&a[i]);
  9.                                 k1=0;
  10.                                 for(;a[i]%10!=0;)
  11.                                 {
  12.                                                 k1+=a[i]%10;
  13.                                                 a[i]/=10;
  14.                                 }
  15.                                
  16.                                 if(k1>k)
  17.                                 {
  18.                                                 k=k1;
  19.                                                 jg=a[i];
  20.                                                 temp=a[i];
  21.                                 }
  22.                                 else if(k1=k)
  23.                                 {
  24.                                                 if(a[i]>temp)
  25.                                                 jg=a[i];
  26.                                 }
  27.                                
  28.                                
  29.                 }
  30.                 printf("%d",jg);
  31.                 return 0;
  32. }       
复制代码

结果输出为什么为0;
qq.png
最佳答案
2022-10-28 11:47:27
  1. #include<stdio.h>
  2. int main()
  3. {
  4.                 int n,i,temp=0,k=0,k1,jg;
  5.                 scanf("%d",&n); int a[n];
  6.                 for(i=0;i<n;i++)
  7.                 {
  8.                                 scanf("%d",&a[i]);
  9.                                 k1=0;
  10.                                 int num=a[i];//////
  11.                                 for(;num;)///////
  12.                                 {
  13.                                                 k1+=num%10;
  14.                                                 num/=10;
  15.                                 }
  16.                                 
  17.                                 if(k1>k)
  18.                                 {
  19.                                                 k=k1;
  20.                                                 jg=a[i];
  21.                                                 temp=a[i];
  22.                                 }
  23.                                 else if(k1==k)/////
  24.                                 {
  25.                                                 if(a[i]>temp)
  26.                                                 jg=a[i];
  27.                                 }
  28.                                 
  29.                                 
  30.                 }
  31.                 printf("%d",jg);
  32.                 return 0;
  33. }        
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-10-28 11:47:27 | 显示全部楼层    本楼为最佳答案   
  1. #include<stdio.h>
  2. int main()
  3. {
  4.                 int n,i,temp=0,k=0,k1,jg;
  5.                 scanf("%d",&n); int a[n];
  6.                 for(i=0;i<n;i++)
  7.                 {
  8.                                 scanf("%d",&a[i]);
  9.                                 k1=0;
  10.                                 int num=a[i];//////
  11.                                 for(;num;)///////
  12.                                 {
  13.                                                 k1+=num%10;
  14.                                                 num/=10;
  15.                                 }
  16.                                 
  17.                                 if(k1>k)
  18.                                 {
  19.                                                 k=k1;
  20.                                                 jg=a[i];
  21.                                                 temp=a[i];
  22.                                 }
  23.                                 else if(k1==k)/////
  24.                                 {
  25.                                                 if(a[i]>temp)
  26.                                                 jg=a[i];
  27.                                 }
  28.                                 
  29.                                 
  30.                 }
  31.                 printf("%d",jg);
  32.                 return 0;
  33. }        
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-28 11:49:23 | 显示全部楼层
=和==没有分清
  1.         else if(k1==k)
  2.         {
  3.             if(a[i]>temp)
  4.                 jg=a[i];
  5.         }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-28 14:01:44 | 显示全部楼层
本帖最后由 jackz007 于 2022-10-28 14:11 编辑
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>

  4. void random(int d[][200] , int m , int n)
  5. {
  6.         time_t t                                                                                                  ;
  7.         if(n > 0 && m > 0) {
  8.                 srand((unsigned long long) time(& t))                                                             ;
  9.                 for(int i = 0 ; i < n ; i ++) for(int j = 0 ; j < m ; j ++) d[i][j] = rand() % 10                 ;
  10.         }
  11. }

  12. void swap(int * a , int * b)
  13. {
  14.         int t                                                                                                     ;
  15.         t = * a ; * a = * b ; * b = t                                                                             ;
  16. }

  17. void sort(int d[] , int n)
  18. {
  19.         for(int i = 0 ; i < n - 1 ; i ++) for(int j = i + 1 ; j < n ; j ++) if(d[i] < d[j]) swap(& d[i] , & d[j]) ;
  20. }

  21. int comp(int d1[] , int d2[] , int n)
  22. {
  23.         int i                                                                                                     ;
  24.         for(i = 0 ; i < n && d1[i] == d2[i] ; i ++)                                                               ;
  25.         return (i == n) ? 0 : (d1[i] > d2[i]) ? 1 : -1                                                            ;
  26. }

  27. int main()
  28. {
  29.         int a[200][200] , b[200][200] , d[200] , e[200] , i , j , k , m = 12 , n , t                              ;
  30.         scanf("%d", & n)                                                                                          ;
  31.         random(a , m , n)                                                                                         ;
  32.         for(i = 0 ; i < n ; i ++) for(j = 0 ; j < m ; j ++) b[i][j] = a[i][j]                                     ;
  33.         for(i = 0 ; i < n ; i ++) {
  34.                 printf("[%2d] : %d" , i + 1 , a[i][0])                                                            ;
  35.                 for(j = 1 ; j < m ; j ++) printf(" %d" , a[i][j])                                                 ;
  36.                 printf("\n")                                                                                      ;
  37.         }
  38.         printf("\n")                                                                                              ;
  39.         for(i = 0 ; i < n ; i ++) for(j = d[i] = 0 ; j < m ; j ++) d[i] += a[i][j]                                ;
  40.         for(i = 0 ; i < n ; i ++) sort(a[i] , m)                                                                  ;
  41.         for(i = 0 ; i < n ; i ++) e[i] = i                                                                        ;
  42.         for(i = 0 ; i < n - 1 ; i ++) for(j = i + 1 ; j < n ; j ++) if(d[e[i]] < d[e[j]]) swap(& e[i] , & e[j])   ;
  43.         for(k = 0 ; k < n && d[e[k]] == d[e[0]] ; k ++) {
  44.                 printf("[%2d] : %d" , e[k] + 1 , b[e[k]][0])                                                      ;
  45.                 for(i = 1 ; i < m ; i ++) printf(" %d" , b[e[k]][i])                                              ;
  46.                 printf("\n")                                                                                      ;
  47.         }
  48.         if(k > 1) {
  49.                 for(i = 0 ; i < k - 1 ; i ++) for(j = i + 1 ; j < k ; j ++) if(comp(a[e[i]] , a[e[j]] , m) < 0) swap(& e[i] , & e[j]) ;
  50.                 printf("\n")                                                                                                          ;
  51.                 printf("[%2d] : %d" , e[0] + 1 , b[e[0]][0])                                                                          ;
  52.                 for(i = 1 ; i < m ; i ++) printf(" %d" , b[e[0]][i])                                                                  ;
  53.                 printf("\n")                                                                                                          ;
  54.         }
  55. }
复制代码

        编译、运行实况:
  1. D:\[00.Exerciese.2022]\C>g++ -o x x.c

  2. D:\[00.Exerciese.2022]\C>x
  3. 8
  4. [ 1] : 3 8 0 5 8 6 9 4 8 2 3 1
  5. [ 2] : 9 6 1 3 7 0 0 2 2 8 1 9
  6. [ 3] : 2 5 1 2 8 4 1 9 9 5 2 0
  7. [ 4] : 5 9 0 5 4 9 6 7 6 8 5 7
  8. [ 5] : 7 6 7 5 1 4 4 3 7 4 8 3
  9. [ 6] : 9 1 8 7 3 9 7 6 6 8 5 2
  10. [ 7] : 5 5 2 6 0 3 5 7 5 3 3 4
  11. [ 8] : 0 0 6 4 8 8 2 8 8 0 0 0

  12. [ 4] : 5 9 0 5 4 9 6 7 6 8 5 7
  13. [ 6] : 9 1 8 7 3 9 7 6 6 8 5 2

  14. [ 6] : 9 1 8 7 3 9 7 6 6 8 5 2

  15. D:\[00.Exerciese.2022]\C>
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-10-28 14:59:27 | 显示全部楼层

1. 为什么要 有int num=a[i]这一步,直接a[i]有什么问题???
2. for的条件为什么只有num这样不会无限循环吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-29 07:50:48 | 显示全部楼层
原来是我错付了 发表于 2022-10-28 14:59
1. 为什么要 有int num=a这一步,直接a有什么问题???
2. for的条件为什么只有num这样不会无限循环吗 ...
  1. 1、你后面不是还有让jg=a[i]吗?如果用a[i]第二层循环结束a[i]全等于0
  2. 2、num/=10;最后num肯定等于零
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-23 06:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表