请教一道c的编程题

输入一个十个数的数组,把其中最大的和第一个数调换,把最小的和最后一个数换一下位置,不能用指针哦~

第1个回答  2008-06-05
楼上的,只有最小数(最大数)才进行交换吧,你的做法是否把原来数组的位置打乱了??
直接交差吧,编译好的……
#include<stdio.h>
main()
{
float temp_data[10];
float maxdata;
float mindata;
float middata;
int i=0;
int j=0;//最大数的位置。
int k=0;//最小数的位置。

printf("please input the data\n ");
for(i=0;i<10;i++)
{
scanf("%f",&temp_data[i]);
}
maxdata=temp_data[0];
mindata=temp_data[0];

for(i=1;i<10;i++) //查找法选出最大和最小值
{
if(maxdata<temp_data[i])
{
maxdata=temp_data[i];
j=i;
}

if(mindata>temp_data[i])
{
mindata=temp_data[i];
k=i;
}
}

middata=temp_data[0];//最大数与第一个数交换
temp_data[0]=maxdata;
temp_data[j]=middata;

middata=temp_data[9];//最小数与最后一个数交换
temp_data[9]=mindata;
temp_data[k]=middata;

i=0;//数出该数组
printf("The result is \n ");
while(i<10)
{
printf("%f ",temp_data[i]);
i++;
}
}
第2个回答  2008-06-05
#include<stdio.h>
void main()
{
int a[10],i,j,t;
printf("请输入十个数:");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=2;i<10;i++)
if(a[1]<a[i])
{
t=a[1];a[1]=a[i];a[i]=t;
} //每次只有第一个数小时才交换,这样执行效率高
for(i=2;i<9;i++)
if(a[9]>a[i])
{
t=a[9];a[9]=a[i];a[i]=t;
}
printf("交换后的数组为:");
for(i=0;i<10;i++)
printf("%d ",a[i]);
printf("\n");
}

看来只有我的答案最简单啊 哈哈
第3个回答  2008-06-05
上面的程序都有错!我全部运行试过了!
我这个没用数组,完全符合你的要求:

输入: 0 1 2 3 4 5 6 7 8 9
输出: 9 1 2 3 4 5 6 7 8 0

#include <stdio.h>

#define N 10

main()
{
int a[N]={0};
int i,max,min,maxidx,minidx;

puts("请输入数据:");
for(i=0;i<N;i++)
{
scanf("%d",&a[i]);
}

puts("原始数组:");
for(i=0;i<N;i++)
{
printf("%d ",a[i]);
}
printf("\n");

max=min=a[0];
maxidx=minidx=0;
for(i=1;i<N;i++)
{
if(max<a[i])
{
max=a[i];
maxidx=i;
}
if(min>a[i])
{
min=a[i];
minidx=i;
}
}
a[minidx]=a[N-1];
a[maxidx]=a[0];
a[N-1]=min;
a[0]=max;

puts("交换后数组:");
for(i=0;i<N;i++)
{
printf("%d ",a[i]);
}
printf("\n");
}本回答被网友采纳
第4个回答  2008-06-05
#include <stdio.h>
void main()
{
int a[10]={12,5,2,6,4,63,4,6,87,3};
int i,t,min=a[0],minid=0,max=a[0],maxid=0;
for(i=1;i<10;i++)
{
if(min>a[i])
{
min=a[i];
minid=i;
}
if(max<a[i])
{
max=a[i];
maxid=i;
}
}
t=a[0];a[0]=a[maxid];a[maxid]=t;
t=a[9];a[9]=a[minid];a[minid]=t;
for(i=0;i<10;i++)
printf("%d ",a[i]);

}
第5个回答  2008-06-06
main()
{
int a[10]={3,2,6,8,5,4,6,8,1,7};
int max,min,i,j,m,n;

for(i = 0, n = m = a[i]; i < 10; i++)
{
if(m < a[i])
{
m = a[i];
max = i;
}

if(n > a[i])
{
n = a[i];
min = i;
}
}

a[0] ^= a[max];
a[max] ^= a[0];
a[0] ^= a[max];

a[9] ^= a[min];
a[min] ^= a[9];
a[9] ^= a[min];

输出......

}

请教一下编程C语言题,使用函数方程求出总键盘输入的任意两个整数的平均...
首先,你需要通过键盘然后,计算这两个整数的平均值,并保留两位小数输出。下面是一个使用C语言实现的示例代码:c#include <stdio.h> \/\/ 函数,用于计算两个整数的平均值 double average(int a, int b) { return (double)(a + b) \/ 2;} int main() { int num1, num2;\/\/ 从键盘输入两...

C语言初学者请问这道题怎么做?
遍历字符串S,使用数组统计其中26个字母分别出现的次数 最终最少的字母出现次数即为可以召唤的神龙数 再乘以n就是可以实现的愿望数 C语言参考代码如下:include <stdio.h> int main(){ long long int n; \/\/ 注意n的取值范围超过了2^31-1,应取长整型 scanf("%lld", &n);char S[1000000];s...

请教各位大神一个简单c语言编程题目,谢谢。。。从键盘输入一个字符...
include void main () { int num=0,i;\/*num保存A出现个数,i循环参数*\/ char str[30];\/*定义一个字符串*\/ scanf("%s",str);\/*输入一个字符串*\/ for(i=0;str[i]!='\\0';i++);\/*直到字符串结束为止,循环判断字符串中每个字符是不是A*\/ { if(str[i...

请教大神们一道c语言的题,有关于for循环的 题目是这样的,程序段运行...
答案是:B. 7 4 理由如下:第一个循环,整个循环体执行后,输出(x=)7,这个没有疑问,执行完循环,for(x=10;x>3;x--)执行x--操作,此时x=6,满足x>3条件,进入第二个循环。第二个循环,x=6不满足if条件,执行2次--x操作,输出(x=)4,执行完循环,for(x=10;x>3;x--)...

初学者请教 两道简单的c语言编程题目
1. 用C语言自己的时间函数 difftime(time_t time1, time_t time0) \/ 86400 这样做得缺点是,这里的time_t类型,只支持到2037年 2. 自己定义函数 楼主用的方法,在实际编程里不常用,变化比较大。下面这个方法是直接计算两个日期到公元元年的天数 然后相减,这个是实际编程时的算法,经过很多程序...

关于C语言的一个题目,如图,请教详细解释,谢谢.
int是占2个字节,long占4个字节,char占1个字节。如题 s->i[0] = 0x39, s->i[0] = 0x38,假如内存地址如下,则:地址 0x0000 0x0001 0x0002 0x0003 i[2]: 9 3 8 3 而c[4]则对应这4个地址,c[0]当然是9,选B....

请教C语言题目
1、A p指向的二维数组和t的列数不符合。C和D p是二维数组的指针,s[i]t[i]表示一行,近似一维数组 2、*p:指向int型变量指针 *q[4]指向int型变量的指针数组。A q[i]是指针,b[i]是一个一维数组。所以可以。因为指针可以近似看做一个一维数组。B p是指针,而b是二维数组的首地址。C 同...

不甚感激……一道C语言请教
没错,next根本没有出现,所以空白处应该填上*next。这样,每一个节点都有一个指向下一个节点的指针,所以需要嵌套定义,即结构体中定义结构体。②程序的功能是用结构体表示学生编号和成绩, stud1的下一个节点是stud2,stud2的下一个节点是stud3,加上头指针head,这样就是一个链表了。

...一道题吖,制作一个电脑可以定时开关的C语言编程.简单点就好_百度知 ...
void main(){ char cmd[20]="shutdown -s -t ";char t[5]="0";int c;system("title C语言关机程序"); \/\/设置cmd窗口标题 system("mode con cols=48 lines=25"); \/\/窗口宽度高度 system("color f0"); \/\/可以写成 red 调出颜色组 system("date \/T");system("TIME \/T");p...

请教C程序的一下一道题。急!会的能帮我做下不?
int main(void){ double a[10] = {0};int MaxID = 0;int MinID = 0;double sum = 0;for(int i=0; i<10; i++){ scanf("%f", &a[i]);if(a[i] > a[MaxID]) MaxID = i;if(a[i] < a[MinID]) MinID = i;} for(int j=0; j<10; j++){ if(j == Max...

相似回答
大家正在搜