求救一道c语言题目
输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。写3个函数:①输入10个数、②进行处理、③输出10个数。
输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。写3个函数:①输入10个数、②进行处理、③输出10个数。
答案:#include <stdio.h>
#include <conio.h>
void main(void)
{
int amount,first,last,temp;
int count=1;
printf("\n请输入一共有几个数字:");
scanf("%d",&amount);
int** p=(int**)malloc(amount*sizeof(int*));
for(int i=0;i<amount;i++)
{
p[i]=(int*)malloc(1*sizeof(int));
}
for(int i=0;i<amount;i++)
{
printf("\n请输入第%d个数字",count);
scanf("%d",p[i]);
count++;
if(i==0)
{
first=*p[i];
}
else if(i==amount-1)
{
last=*p[i];
*p[i]=first;
*p[0]=last;
}
}
for(int i=0;i<amount;i++)
{
printf("\n你输入的数为:%d",*p[i]);
}
getch();
}
加油编程哦!!这个是我写的,比较简单,你看看就懂了,有注释的,写好了,要睡觉啦,安安
==========================================================================
#include "stdio.h"
int i,j,min,temp,a[10]; /* 将所有的变量都定义成外部变量,避免变量在不同的函数中被重新赋值 */
/* 输入函数原型 */
void get()
{
printf("Enter data:\n");
for(i=0;i<10;i++) /* for循环,用数组a[10]存储10个数字 */
{
printf("a[%d]=",i);
scanf("%d",&a[i]);
}
printf("\n");
printf("The orginal numbers:\n");
for(i=0;i<10;i++) /* 显示10个数的原排列 */
printf("%5d",a[i]);
printf("\n");
}
/* 处理函数原型 */
void make()
{
/* 用冒泡法,只用一轮循环,将最大的书冒泡到最后 */
for(i=0;i<9;i++)
if(a[i]>a[i+1])
{
temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
}
/* 同理,倒叙过来,将最小的数冒泡到最前面 */
for(i=9;i>0;i--)
if(a[i-1]>a[i])
{
temp=a[i];
a[i]=a[i-1];
a[i-1]=temp;
}
}
/* 输出函数原型 */
void put()
{
printf("\nThe sorted numbers:\n");
for(i=0;i<10;i++)
printf("%5d",a[i]);
printf("\n");
}
main()
{
get(); /* 执行输入函数 */
make(); /* 执行处理函数 */
put(); /* 执行输出函数 */
scanf("%d"); /* TC 编译,方便获得回显 */
}老兄..这是基础,最好自己做...#include <stdio.h>
void main()
{
void Input(int a[]);
void ChgNum(int a[]);
void output(int a[]);
int a[10];
Input(a);
ChgNum(a);
Output(a);
}
void Input(int a[])
{
int i;
for (i = 0; i < 10; i++) scanf ("%d", &a[i]);
}
void Output(int a[])
{
int i;
for (i = 0; i < 10; i++) printf ("%d ", a[i]);
printf ("\n");
}
void ChgNum(int a[])
{
int i, max = a[0], min = a[0], max_index = 0, min_index = 0;
for (i = 1; i < 10; i++)
{
if (a[i] > max) max = a[i], max_index = i;
else if (a[i] < min) min = a[i], min_index = i;
}
a[max_index] = a[9], a[9] = max;
a[min_index] = a[0], a[0] = min;
}这是网上的解答,我懒了做了,仅供参考
main()
{int number[10];
aa(number);
bb(number);
cc(number);
}
aa(int *array)
{int i;
for(i=0;i<10;i++)
scanf("%d,",&array[i]);
}
bb(int *array)
{int *max,*min,t;
int *p;
p=max=min=array;
for(p=array+1;p
if(*max<*p) max=p;
else if(*min>*p) min=p;
t=*max;*max=array[9];array[9]=t;
t=*min;*min=array[0];array[0]=t;
}
cc(int *array)
{ int *p;
for(p=array;p
printf("%d,",*p);
printf("%d\\n",array[9]);
getch();
}
当然~如果不用到调用函数的话还可以更更更更简单点~(简约不简单哦~)
main()
{int a[10],i,*p,*max,*min,t;
max=min=a;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(p=a;p
if(*max<*p) max=p;
else if(*min>*p) min=p;
t=*min;*min=a[0];a[0]=t;
t=*max;*max=a[9];a[9]=t;
for(p=a;p
printf("%d,",*p);
printf("%d",a[9]);
getch();
}int a ,b
char s[i]
for(i=0,i<9,i++)
scanf ("%d", &S[i])
if (s[i]>s[i+1])
a=s[i],
s[0]=a,
for(i=0,i<9,i++)
if (s[i]<s[i+1])
b=s[i],
s[9]=b,
printf ("%d ", S[i]);#include <stdio.h>
/*自定义函数(1):输入n个数
从指针p位置处开始输入n个整数*/
void ptin(int *p,int n)
{
int i;
printf("请输入 %d 个整数:",n);
for(i=0;i<n;i++) scanf("%d",p+i);
}
/*自定义函数(2):进行处理
将其中最小的数与第一个数对换,最大的数与最后一个数对换*/
void pr(int *p,int n)
{
int i,*max,*min;
max=min=p;
for(i=1;i<n;i++)
{
if(*max<*(p+i)) max=p+i;
if(*min>*(p+i)) min=p+i;
}
i=*min;*min=*p;*p=i; //最小的数与第一个数对换
i=*max;*max=*(p+n-1);*(p+n-1)=i; //最大的数与最后一个数对换
}
/*自定义函数(3):输出n个数
从指针p位置处开始输出n个整数*/
void ptout(int *p,int n)
{
int i;
printf("输出这%d个数:\n",n);
for(i=0;i<n;i++)printf("%6d",*(p+i));
printf("\n");
}
void main()
{
int a[10];
ptin(a,10); //输入10个数
printf("处理前");
ptout(a,10); //处理前输出
pr(a,10); //处理
printf("处理后");
ptout(a,10); //处理后输出
}fun1(int *a)
{
for(int i;i<10;i++)
scanf("%d",&a[i]);
}
fun2(int *a)
{
int MaxW=0,MinW=0,Tmp;
for(int i=0;i<10;i++)
{
if(a[i]>a[MaxW])
MaxW=i;
if(a[i]<a[MinW])
MinW=i;
}
Tmp=a[0];
a[0]=a[MinW];
a[MinW]=Tmp;
Tmp=a[9];
a[9]=a[MaxW];
a[MaxW]=Tmp;
}
fun3(int * a)
{
for(int i=0;i<10;i++)
printf("%d\t%d\n",i,a[i]);
}
main()
{
int a[10];
fun1(a);
fun2(a);
fun3(a0;
}输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。写3个函数:①输入10个数、②进行处理、③输出10个数。
#include "stdio.h"
int a[10];
void InputData()
{
int i;
for(i=0;i<10;i++)
{
printf("输入第%d个数:",i+1);
scanf("%d",&a[i]);
}
}
void CompareData()
{
int i,temp;
for(i=0;i<10;i++)
{
if(a[i]>a[9])
{
temp=a[i];
a[i]=a[9];
a[9]=temp;
}
for(i=0;i<10;i++)
{
if(a[i]<a[0])
{
temp=a[i];
a[i]=a[0];
a[0]=temp;
}
}
void OutputData()
{
int i;
printf("\n输出10个数据:");
for(i=0;i<10;i++)printf("%d ",a[i]);
}
voidmain()
{
InputData();
OutputData();
CompareData();
OutputData();
}#include <stdio.h>
#define N 10 /*改变此值可改变输入的数的个数*/
void main()
{ void Input(int a[]);
void ChgNum(int a[]);
void output(int a[]);
int a[N];
Input(a);
ChgNum(a);
Output(a);}
void Input(int a[])
{ int i; for (i = 0; i < 10; i++)
scanf ("%d", &a[i]);
}
void Output(int a[])
{ int i;
for (i = 0; i < 10; i++)
printf ("%d ", a[i]);
printf ("\n");
}
void ChgNum(int a[])
{ int i, max = a[0], min = a[0], m = 0, n = 0;
for (i = 1; i < 10; i++) {
if (a[i] > max)
max = a[i];上一个:C语言高手来呀!!!!
下一个:求一个C语言大程序