uj5u.com熱心網友回復:
我的程式如下#include<stdio.h>
int main()
{
void input(int a[]);
int a[10];
void f(int a[]);
void output(int a[]);
input(a);
f(a);
output(a);
return 0;
}
void input(int a[])
{
int i = 0;
printf("please input 10 numbers:\n");
for (i=0;i<10;i++)
{
printf("第%d個數字為:",i+1);
scanf("%d", &a[i]);
}
}
void f(int a[])
{
int t;
int min=a[0],max=a[0];
int *p1,*p2;
int i = 0;
for (i = 0; i < 10; i++)
{
if (a[i] < min)
{
min = a[i];
p1=&a[i];
}
if (a[i] > max)
{
max = a[i];
p2=&a[i];
}
}
t=a[0];
a[0]=*p1;
*p1=t;
t=a[9];
a[9]=*p2;
*p2=t;
}
void output(int a[])
{
int i = 0;
for (i = 0; i < 10; i++)
{
printf("%3d", a[i]);
}
printf("\n");
printf("最小的數字為:%3d,最大的數字為:%3d\n",a[0],a[9]);
}
uj5u.com熱心網友回復:
你的處理函式太混亂,在你的代碼基礎上修改,供參考
#include<stdio.h>
void input(int a[]);
void f(int a[]);
void output(int a[]);
int main()
{
int a[10];
input(a);
f(a);
output(a);
return 0;
}
void input(int a[])
{
int i = 0;
printf("please input 10 numbers:\n");
for (i=0;i<10;i++)
{
printf("第%d個數字為:",i+1);
scanf("%d", &a[i]);
}
}
void f(int a[])
{
int t=0, minindex=0, maxindex=0;
int min=a[0],max=a[0];
int i = 0;
for (i = 0; i < 10; i++)
{
if (a[i] < min)
{
min = a[i];
minindex = i;
}
if (a[i] > max)
{
max = a[i];
maxindex = i;
}
}
if (minindex != 0)
{
t = a[0];
a[0] = a[minindex];
a[minindex] = t;
}
if (maxindex != 9)
{
t = a[9];
a[9] = a[maxindex];
a[maxindex] = t;
}
}
void output(int a[])
{
int i = 0;
for (i = 0; i < 10; i++)
{
printf("%3d", a[i]);
}
printf("\n");
printf("最小的數字為:%3d,最大的數字為:%3d\n",a[0],a[9]);
}
uj5u.com熱心網友回復:
我用了你的程式。很感謝
,但是我還是想問哈我的程式錯在哪。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/74470.html
標籤:C語言
上一篇:求教一個C語言問題,給定一個字串,怎么按單詞的長度排序
下一篇:這代碼哪里有錯,求解啊
