giegie666 发表于 2022-12-4 21:58:42

有大佬说说这要怎么写啊

有一数组内存放10个整数,要求找出最大数和它的下标, 然后把它和数组中第0个元素对换位置。

输入格式:
在一行中输入10个整数,数据之间只能用1个空格间隔。

输出格式:
在一行中直接输出变化后的数组,每个数输出占4列列宽。在下一行中按照“max=最大值,位置=最大值下标”的顺序输出最大数和它的下标

1 2 3 4 5 6 7 8 9 10


输出样例:
10   2   3   4   5   6   7   8   9   1
max=10,weizhi=9

jackz007 发表于 2022-12-4 22:11:45

#include <stdio.h>

int main(void)
{
      int d , i , k , m                           ;
      for(i = k = 0 ; i < 10 ; i ++) {
                scanf("%d" , & d)                  ;
                if(d > d) k = i                   ;
      }
      if(k) {
                m = d                              ;
                d = d                           ;
                d = m                              ;
      }
      printf("%d" , d)                           ;
      for(i = 1 ; i < 10 ; i ++) printf(" %d" , d) ;
      printf("\n")                                    ;
      printf("max = %d , weizhi = %d\n" , d , k)   ;
}
      编译运行实况:
D:\\C>g++ -o x x.c

D:\\C>x
1 2 3 4 5 6 7 8 9 10
10 2 3 4 5 6 7 8 9 1
max = 10 , weizhi = 9

D:\\C>

giegie666 发表于 2022-12-4 22:21:57

jackz007 发表于 2022-12-4 22:11
编译运行实况:

格式还是错的

jackz007 发表于 2022-12-4 23:20:23

本帖最后由 jackz007 于 2022-12-4 23:21 编辑

giegie666 发表于 2022-12-4 22:21
格式还是错的

      如果格式错误是指没有按4列宽度输出数组,那么,这个是改正后的版本。
#include <stdio.h>

int main(void)
{
      int d , i , k , m                           ;
      for(i = k = 0 ; i < 10 ; i ++) {
                scanf("%d" , & d)                  ;
                if(d > d) k = i                   ;
      }
      if(k) {
                m = d                              ;
                d = d                           ;
                d = m                              ;
      }
      for(i = 0 ; i < 10 ; i ++) printf("%4d" , d) ;
      printf("\n")                                    ;
      printf("max = %d , weizhi = %d\n" , d , k)   ;
}

giegie666 发表于 2022-12-4 23:22:36

jackz007 发表于 2022-12-4 23:20
如果格式错误是指没有按4列宽度输出数组,那么,这个是改正后的版本。

我已经改了,谢谢

lipeng0808 发表于 2024-12-31 10:02:59

static void Main(string[] args)
{

    /// 输入数组
    int[] numbers = new int;

    // 提示用户输入10个整数
    Console.WriteLine("请输入10个整数,用空格分隔:");
    string input = Console.ReadLine();

    // 将输入的字符串分割并转换为整数
    string[] inputs = input.Split(' ');
    for (int i = 0; i < 10; i++)
    {
      numbers = int.Parse(inputs);
    }

    // 找出最大值及其下标
    int max = numbers;
    int maxIndex = 0;

    for (int i = 1; i < numbers.Length; i++)
    {
      if (numbers > max)
      {
            max = numbers;
            maxIndex = i;
      }
    }

    // 交换最大值与第0个元素
    numbers = numbers;
    numbers = max;

    // 输出变化后的数组
    Console.WriteLine("变更后的数组:");
    foreach (var num in numbers)
    {
      Console.Write($"{num,4}");
    }
    Console.WriteLine(); // 换行

    // 输出最大值及其下标
    Console.WriteLine($"max={max}, weizhi={maxIndex}");

    // 等待用户输入以保持控制台窗口打开
    Console.WriteLine("按任意键退出...");
    Console.ReadKey(); // 等待用户按下任意键

}
页: [1]
查看完整版本: 有大佬说说这要怎么写啊