输入1个正整数n(1<n<=10),再输入n个整数,按绝对值从小到大排序后输出。
输入输出示例:
输入数据的个数:10
输入10个整数:-11 2 8 5 -3 -16 9 7 6 10
排序后:2 -3 5 6 7 8 9 10 -11 -16
#include<stdio.h>
#include<math.h>
void main()
{
int i,n,x,j,f[10];
printf("输入数据的个数n:");
scanf("%d",&n);
printf("输入%d个整数:",n);
for(i=0;i<n;i++)
scanf("%d",&f[i]);
printf("\n");
for(i=0;i<n-1;i++)
for(j=0;j<n-1-i;j++)
if(fabs(f[j])>fabs(f[j+1]))
{
x=f[j];
f[j]=f[j+1];
f[j+1]=x;
}
for(i=0;i<n;i++)
printf("%5d",f[i]);
printf("\n");
}
fabs()函数:取绝对值
if里面相当于这里就是 c=a,a=b,b=c,这样取值
输入一个n行m列(n<=4,m<=4)的数组,先以n行m列的格式输出该数组,然后找出该数组中值最小的元素,输出该元素及其行下标和列下标。
输入输出示例:
输入数组行和列数n、m:2 3
输入2行3列的数组元素:
12 -7 15
-18 9 11
12 -7 15
-18 9 11
a[1][0]=-18
#include<stdio.h>
void main()
{
int i,j,n,m,x,y,min,f[4][4];
printf("输入数组行和列数n、m:");
scanf("%d%d",&n,&m);
printf("输入%d行%d列的数组元素:\n",n,m);
for(i=0;i<n;i++)
for(j=0;j<m;j++)
scanf("%d",&f[i][j]);
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
printf("%5d",f[i][j]);
printf("\n");
}
min=f[0][0];
x=0;
y=0;
for(i=0;i<n;i++)
for(j=0;j<m;j++)
if(min>f[i][j])
{
x=i;
y=j;
min=f[i][j];
}
printf("f[%d][%d]=%d\n",x,y,min);
}
这里相当于就是把最小值的位置,用min确定值,赋值x,y确定坐标值,其他都是数组基本操作
设计一个打印“杨辉三角形”的程序(要求输出10行)。
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
#include<stdio.h>
void main()
{
int f[10][10];
int i,j;
for(i=0;i<10;i++)
{
f[i][0]=1;
f[i][i]=1;
}
for(i=1;i<10;i++)
for(j=1;j<i;j++)
{
f[i][j]=f[i-1][j-1]+f[i-1][j];
}
for(i=0;i<10;i++)
{
for(j=0;j<=i;j++)
printf("%4d",f[i][j]);
printf("\n");
}
}
这里运用之前拍p3中的循环,f[i][0]与f[i][i]都是在赋值每一行最后一个与第一个,
f[i][j] = f[i - 1][j - 1] + f[i - 1][j]而这里从i=1,j=1开始这样就可以取f[0]取得值,