您的位置:首页 > 其它

第6章 利用数组处理批量数据 与 第7章用函数实现模块化程序设计

2019-02-17 13:47 369 查看

第6章 利用数组处理批量数据

例6.1 对10个数组元素依次赋值为0,1,2,3,4,5,6,7,8,9,要求按逆序输出。

#include<stdio.h>
int main ()
{
int i,a[10];
for(i=0;i<=9;i++)
a[i]=i;
for(i=9;i>=0;i--)
printf("%d",a[i]);
printf("\n");
return 0;
}

例6.2 用数组来处理Fibonacci数列问题。

#include <stdio.h>
int main()
{
int i;
int f[20]={1,1};
for(i=2;i<20;i++)
f[i]=f[i-2]+f[i-1];
for(i=0;i<20;i++)
{
if(i%5==0) printf("\n");
printf("%12d",f[i]);
}
printf("\n");
return 0;
}

例6.3 冒泡法。

#include <stdio.h>
int main()
{
int a[10];
int i,j,t;
printf("请输入十个数:");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
printf("\n");
for(j=0;j<9;j++)
for(i=0;i<9-j;i++)
if(a[i]>a[i+1])
{t=a[i];a[i]=a[i+1];a[i+1]=t;}
printf("调整后:");
for(i=0;i<10;i++)
printf("%d",a[i]);
printf("\n");
return 0;
}

例6.4 将一个二维数组行和列的元素互换,存到另一个二维数组中。

#include <stdio.h>
int main ()
{
int a[2][3]={{1,2,3},{4,5,6}};
int b[3][2],i,j;
printf("原数组为:");
for(i=0;i<2;i++)
{
for(j=0;j<3;j++)
{
printf("%5d",a[i][j]);
b[][i]=a[i][j];
}
printf("\n");
}
printf("互换后:");
for(i=0;i<3;i++)
{
for(j=0;j<2;j++)
printf("%5d",b[i][j]);
printf("\n");
}
return 0;
}

总结:找出十个整数的最大数,将其与第一个数交换。

#include<stdio.h>
int main()
{
int a[10],i,max,n;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
max=a[0];n=0;
for(i=1;i<10;i++)
if(max<a[i])
{
max=a[i];
n=i;
}
printf("%d",max);
t=a[0];a[0]=a[n];a[n]=t;
for("i=0;i<10;i++)
printf("%d ",a[i]);
return 0;
}

总结:数组交换。

1 2 3 1 4 7
4 5 6 → 2 5 8
7 8 9 3 6 9

#include <stdio.h>
int main()
{
int a[3][3]={1,2,3,4,5,6,7,8,9},i,j,t;
for(i=0;i<=2;i++)
{
for(j=0;j<=2;j++)
{
printf("%5d",a[i][j]);
}
printf("\n");
}
for(i=0;i<=1;i++)
{
for(j=0;j<=i;j++)
{
t=a[i][j];
a[i][j]=a[j][i];
a[j][i]=t;
}
printf("\n");
}
printf("array a:\n");
for (i=0;i<=2;i++)
{
for (j=0;j<=2;j++)
printf("%5d",a[i][j]);
printf("\n");
}
return 0;
}

第7章用函数实现模块化程序设计

例 7.1输入两个整数,要求输出其中值较大者。要求用函数来找到大数。

#include <stdio.h>
int max(int x,int y)
{
intz;
z=x>y?x:y;
return (z);
}
int main()
{
int a,b,c;
printf("请输入两个数:");
scanf("%d%d\n",&a,&b);
c=max(a,b);
printf("max is %d\n",c);
return 0;
}

例7.2 输入两个实数,用一个函数求出它们之和。

#include <stdio.h>
float add(float x,float y)
{
float z;
z=x+y;
return (z);
}
int main()
{
float a,b,c;
printf("请输入a,b:");
scanf("%f%f",&a,&b);
c=add(a,b);
printf("sum is %f\n",c);
return 0;
}

上机任务1:编写程序计算一个整数的阶乘fac(int n),在主函数中输入一个数字,调用阶乘函数输出该数字的阶乘。

#include <stdio.h>
int fac(int n)
{
int s=1,a;
for(a=1;a<=n;a++)
s*=a;
return s;
}
int main ()
{
int n,c;
scanf("%d",&n);
c=fac(n);
printf("%d\n",c);
return 0;
}

上机任务2:编写程序判断是否是水仙花数。#include <stdio.h>

#include <stdio.h>
int num(int n)
{
int c;
c=(n/100)*(n/100)*(n/100)+(n%10)*(n%10)*(n%10)+(n/10%10)*(n/10%10)*(n/10%10);
return c;
}
int main()
{
int n;
printf("请输入一个三位数:\n");
scanf ( "%d",&n);
if (n==num(n))
{
printf("是水仙花数");
printf("%d\n",n);
}
else
printf ("不是水仙花数");
return 0;
}

上机任务3:编写程序判断是否为素数,在主函数中调用输出101~200之间的素数。

#include <stdio.h>
void num (int n)
{
int i;
for(i=2;i<n;i++)
if(n%i==0)break;
if(i>=n)
printf("%d是素数\n",n);
}
int main ()
{
int i;
for (i=101;i<=200;i++)
num(i);
return 0;
}

上机任务4:

#include <stdio.h>
int main ()
{
int f2(int a,int b);
int f1(int a,int b);
int x=4,y=5;
printf ("The result is :%d\n",f1(x,y));
return 0;
}
int f2(int a,int b)
{
int c;
c=a*b%3;
return c;
}
int f1 (int a,int b)
{
int c;
a+=a;
b+=b;
c=f2(a,b);
return c*c;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: