有大佬说说这要怎么写啊
有一数组内存放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 #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> jackz007 发表于 2022-12-4 22:11
编译运行实况:
格式还是错的 本帖最后由 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) ;
} jackz007 发表于 2022-12-4 23:20
如果格式错误是指没有按4列宽度输出数组,那么,这个是改正后的版本。
我已经改了,谢谢 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]