kangtong 发表于 2020-12-16 09:34:41

不知道哪里错了

输入一个正整数repeat (0<repeat<10),做repeat次下列运算:
输入一个正整数n (1<n≤10),再输入n个整数,输出最大值极其下标(设最大值惟一,下标从0开始)。
例:括号内是说明
输入
3   (repeat=3)
3 1 6 4
3 10 8 1
5 1 2 5 4 0
输出
max=6,index=1    (最大值6的下标是1)
max=10,index=0   (最大值10的下标是0)
max=5,index=2    (最大值5的下标是2)

#include <stdio.h>
int main()
{
        int a;
        int g;
        int w,k,l,q,o;
        scanf("%d",&g);
        for (int i=0;i<g;i++)
        {
                scanf("%d",k);
                for(w=0;w<k;w++)
                {
                scanf("%d",&a);
          if(w=1)
          {
                  if(a>a)
                  l=a;
                  else
                  l=a;
                }
          if(w>1)
          {
                  if(a>l)
                  {l=a;
                        q=w;
                        }
                }
                        }
                        }
                for(o=0;o<g;o++)
                {
                        printf("max=%d,index=%d\n",l,q);
                }
       
}

风过无痕1989 发表于 2020-12-16 10:21:52

你的变量设置的,看得我头晕,我重新帮你写程序吧

jackz007 发表于 2020-12-16 10:29:25

本帖最后由 jackz007 于 2020-12-16 10:31 编辑

#include <stdio.h>
int main()
{
      int a , b , g , i , j , k                              ;
      scanf("%d", & g)                                                   ;
      for (i = 0 ; i < g ; i ++) {
                scanf("%d" , & b)                                       ;
                for(j = 0 ; j < b ; j ++) scanf("%d" , & a)         ;
      }
      for(i = 0 ; i < g ; i ++) {
                for(k = j = 0 ; j < b ; j ++) if(a > a) k = j ;
                printf("max = %d , index = %d\n" , a , k)            ;
      }
}
      编译、运行实况
D:\0002.Exercise\C>cl x.c
用于 x86 的 Microsoft (R) C/C++ 优化编译器 19.28.29334 版
版权所有(C) Microsoft Corporation。保留所有权利。

x.c
Microsoft (R) Incremental Linker Version 14.28.29334.0
Copyright (C) Microsoft Corporation.All rights reserved.

/out:x.exe
x.obj

D:\0002.Exercise\C>x
3
3 1 6 4
3 10 8 1
5 1 2 5 4 0
max = 6 , index = 1
max = 10 , index = 0
max = 5 , index = 2

D:\0002.Exercise\C>

风过无痕1989 发表于 2020-12-16 10:40:38

#include <stdio.h>
int main()
{
        int a;
        int i,j,k;
        int repeat, n, max, index;
        scanf("%d", &repeat);         // 重复次数
        for (i = 0;i < repeat;i++)
        {
                printf("请输入数据的个数:");
                scanf("%d", &n);          // 输入数据个数
                for (j = 0;j < n;j++)
                {
                        scanf("%d", &a);   // 输入数据
                        max = a;         // 假设第1个就是最大值
                        index = 0;            // 记录最大值的下标
                        for (k = 1;k < n;k++)
                        {
                                if (a > max)
                                {
                                        max = a;   // 将大值记为新的最大值
                                        index = k;    // 记录新的最大值的下标
                                }
                        }
                }
                printf("max = %d,index = %d\n", max, index + 1);
        }
}
页: [1]
查看完整版本: 不知道哪里错了