程序填空,不要改变与输入输出有关的语句。
输入一个正整数repeat(0<repeat<10),做repeat次下列运算:输入一个正整数n(1<n<=10),再输入n个整数,先输出最大值及其最大下标(下标从0开始...
输入一个正整数 repeat (0<repeat<10),做 repeat 次下列运算:
输入一个正整数 n (1<n<=10),再输入 n 个整数,先输出最大值及其最大下标(下标从0开始),再将最大值与最后一个数交换,并输出交换后的 n 个数。
输入输出示例:括号内为说明
输入
3 (repeat=3)
5 (n=5)
4 3 5 5 2
4 (n=4)
1 5 6 7
5 (n=5)
5 4 3 2 1
输出
max = 5, index = 3
4 3 5 2 5
max = 7, index = 3
1 5 6 7
max = 5, index = 0
1 4 3 2 5
#include <stdio.h>
int main( )
{
int i, index, n, temp;
int repeat, ri;
int a[10];
scanf("%d", &repeat);
for(ri = 1; ri <= repeat; ri++){
scanf("%d", &n);
for(i = 0; i < n; i++)
scanf("%d", &a[i]);
index=0;
for(i=0;i<n;i++){
if(a[index]<a[i])
index=i;
}
temp=a[index];
a[index]=a[n-1];
a[n-1]=temp;
printf("max=%d,index=%d\n",a[n-1],index);
for(i = 0; i < n; i++)
printf("%d ", a[i]);
printf("\n");
}
}
我发现问题在:输入4 3 5 5 2 输出的不是4 3 2 5 5 而是4 3 5 2 5;如果有多个最大数的话是要把最后一个最大数与 与最后位置上的数交换,请问程序怎么改? 展开
输入一个正整数 n (1<n<=10),再输入 n 个整数,先输出最大值及其最大下标(下标从0开始),再将最大值与最后一个数交换,并输出交换后的 n 个数。
输入输出示例:括号内为说明
输入
3 (repeat=3)
5 (n=5)
4 3 5 5 2
4 (n=4)
1 5 6 7
5 (n=5)
5 4 3 2 1
输出
max = 5, index = 3
4 3 5 2 5
max = 7, index = 3
1 5 6 7
max = 5, index = 0
1 4 3 2 5
#include <stdio.h>
int main( )
{
int i, index, n, temp;
int repeat, ri;
int a[10];
scanf("%d", &repeat);
for(ri = 1; ri <= repeat; ri++){
scanf("%d", &n);
for(i = 0; i < n; i++)
scanf("%d", &a[i]);
index=0;
for(i=0;i<n;i++){
if(a[index]<a[i])
index=i;
}
temp=a[index];
a[index]=a[n-1];
a[n-1]=temp;
printf("max=%d,index=%d\n",a[n-1],index);
for(i = 0; i < n; i++)
printf("%d ", a[i]);
printf("\n");
}
}
我发现问题在:输入4 3 5 5 2 输出的不是4 3 2 5 5 而是4 3 5 2 5;如果有多个最大数的话是要把最后一个最大数与 与最后位置上的数交换,请问程序怎么改? 展开
展开全部
#include <stdio.h>
int main(void)
{
char c;
int blank, digit, letter, other;
int ri, repeat;
scanf("%d", &repeat);
getchar();
for(ri = 1; ri<=repeat; ri++){
c = getchar();
blank=digit=letter=other=0;
while (c!='\n'){
if (c==' ') blank++;
else if (c>='0'&&c<='9') digit++;
else if (c>='a'&&c<='z'||c>='A'&&c<='Z') letter++;
else other++;
c=getchar();
}
printf("letter = %d, blank = %d, digit = %d, other = %d\n", letter, blank, digit, other);
}
}
请采纳。
int main(void)
{
char c;
int blank, digit, letter, other;
int ri, repeat;
scanf("%d", &repeat);
getchar();
for(ri = 1; ri<=repeat; ri++){
c = getchar();
blank=digit=letter=other=0;
while (c!='\n'){
if (c==' ') blank++;
else if (c>='0'&&c<='9') digit++;
else if (c>='a'&&c<='z'||c>='A'&&c<='Z') letter++;
else other++;
c=getchar();
}
printf("letter = %d, blank = %d, digit = %d, other = %d\n", letter, blank, digit, other);
}
}
请采纳。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询