鱼C论坛

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

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

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

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

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

x
#include<stdio.h>
int main()
{
                int n,i,temp=0,k=0,k1,jg;
                scanf("%d",&n); int a[n];
                for(i=0;i<n;i++)
                {
                                scanf("%d",&a[i]);
                                k1=0;
                                for(;a[i]%10!=0;)
                                {
                                                k1+=a[i]%10;
                                                a[i]/=10;
                                }
                                
                                if(k1>k)
                                {
                                                k=k1;
                                                jg=a[i];
                                                temp=a[i]; 
                                }
                                else if(k1=k)
                                {
                                                if(a[i]>temp)
                                                jg=a[i];
                                }
                                
                                
                }
                printf("%d",jg);
                return 0;
}        
结果输出为什么为0;
qq.png
最佳答案
2022-10-28 11:47:27
#include<stdio.h>
int main()
{
                int n,i,temp=0,k=0,k1,jg;
                scanf("%d",&n); int a[n];
                for(i=0;i<n;i++)
                {
                                scanf("%d",&a[i]);
                                k1=0;
                                int num=a[i];//////
                                for(;num;)///////
                                {
                                                k1+=num%10;
                                                num/=10;
                                }
                                
                                if(k1>k)
                                {
                                                k=k1;
                                                jg=a[i];
                                                temp=a[i]; 
                                }
                                else if(k1==k)/////
                                {
                                                if(a[i]>temp)
                                                jg=a[i];
                                }
                                
                                
                }
                printf("%d",jg);
                return 0;
}        
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-10-28 11:47:27 | 显示全部楼层    本楼为最佳答案   
#include<stdio.h>
int main()
{
                int n,i,temp=0,k=0,k1,jg;
                scanf("%d",&n); int a[n];
                for(i=0;i<n;i++)
                {
                                scanf("%d",&a[i]);
                                k1=0;
                                int num=a[i];//////
                                for(;num;)///////
                                {
                                                k1+=num%10;
                                                num/=10;
                                }
                                
                                if(k1>k)
                                {
                                                k=k1;
                                                jg=a[i];
                                                temp=a[i]; 
                                }
                                else if(k1==k)/////
                                {
                                                if(a[i]>temp)
                                                jg=a[i];
                                }
                                
                                
                }
                printf("%d",jg);
                return 0;
}        
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-28 11:49:23 | 显示全部楼层
=和==没有分清
        else if(k1==k)
        {
            if(a[i]>temp)
                jg=a[i];
        }
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

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

void swap(int * a , int * b)
{
        int t                                                                                                     ;
        t = * a ; * a = * b ; * b = t                                                                             ;
}

void sort(int d[] , int n)
{
        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]) ;
}

int comp(int d1[] , int d2[] , int n)
{
        int i                                                                                                     ;
        for(i = 0 ; i < n && d1[i] == d2[i] ; i ++)                                                               ;
        return (i == n) ? 0 : (d1[i] > d2[i]) ? 1 : -1                                                            ;
}

int main()
{
        int a[200][200] , b[200][200] , d[200] , e[200] , i , j , k , m = 12 , n , t                              ;
        scanf("%d", & n)                                                                                          ;
        random(a , m , n)                                                                                         ;
        for(i = 0 ; i < n ; i ++) for(j = 0 ; j < m ; j ++) b[i][j] = a[i][j]                                     ;
        for(i = 0 ; i < n ; i ++) {
                printf("[%2d] : %d" , i + 1 , a[i][0])                                                            ;
                for(j = 1 ; j < m ; j ++) printf(" %d" , a[i][j])                                                 ;
                printf("\n")                                                                                      ;
        }
        printf("\n")                                                                                              ;
        for(i = 0 ; i < n ; i ++) for(j = d[i] = 0 ; j < m ; j ++) d[i] += a[i][j]                                ;
        for(i = 0 ; i < n ; i ++) sort(a[i] , m)                                                                  ;
        for(i = 0 ; i < n ; i ++) e[i] = i                                                                        ;
        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])   ;
        for(k = 0 ; k < n && d[e[k]] == d[e[0]] ; k ++) {
                printf("[%2d] : %d" , e[k] + 1 , b[e[k]][0])                                                      ;
                for(i = 1 ; i < m ; i ++) printf(" %d" , b[e[k]][i])                                              ;
                printf("\n")                                                                                      ;
        }
        if(k > 1) {
                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]) ;
                printf("\n")                                                                                                          ;
                printf("[%2d] : %d" , e[0] + 1 , b[e[0]][0])                                                                          ;
                for(i = 1 ; i < m ; i ++) printf(" %d" , b[e[0]][i])                                                                  ;
                printf("\n")                                                                                                          ;
        }
}
        编译、运行实况:
D:\[00.Exerciese.2022]\C>g++ -o x x.c

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

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

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

D:\[00.Exerciese.2022]\C>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

1. 为什么要 有int num=a[i]这一步,直接a[i]有什么问题???
2. for的条件为什么只有num这样不会无限循环吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-17 05:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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