第八章(函数)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#include <stdio.h>
void fun( int m )
{
int n_100,n_50,n_10,n_1;
n_100=m/100;
n_50=/**/m/50m%100/50 /**/;
n_10=m%50/10;
n_1=/**/m/10m%10 /**/;
printf("100's=%d 50's=%d 10's=%d 1's=%d\n",n_100,n_50,n_10,n_1);
chg(array);
printf("Reversed array:\n");
for(i=0;i<3;i++)
{
for(j=0; j<3; j++) printf("%d ",array[i][j]);
printf("\n");
}
getch();
}
5.修改程序,使函数fun(int n) (n从3开始)计算如下分数之和。
{
str[i]=tab[j][1];
break;
}
}
i++;
}
}
for(i=0; i<n-1; i++)
arr[i]=/**/ arr[i+1]; /**/
arr[n-1]=temp;
}
void main()
{
int a[10],i;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
chg(a,10);
for(i=0;i<10;i++)
printf("%d ",a[i]);
{
temp=array[i][j];
array[i][j]=array[j][i];
/**/ array[j][i]=temp; /**/
}
}
void main()
{
int i,j;
int array[3][3];
printf("Input array:\n");
for(i=0;i<3;i++)
for(j=0; j<3; j++) scanf("%7d",&array[i][j]);
例如:矩阵
12 3
源自文库45 6
78 9
转置后变成:
14 7
25 8
36 9
#include <stdio.h>
#include <conio.h>
int chg(/**/ int array[3][3] /**/)
{
int i,j,temp;
for(/**/ i=0;i<3;i++ /**/)
for(j=i+1;j<3;j++)
getch();
}
3.将程序填写完整,用递归算法求13+23+33+…+n3的值。
#include <stdio.h>
#include <conio.h>
long int fun(int n)
{
long int k;
if(/**/ n==1 /**/ )
k=1;
else
k=/**/ fun(n-1)+n*n*n; /**/
find( k );
getch();
}
void find(int m)
{
int a,b;
if(/**/ (m%7==0) /**/)
{
a=m%10;
/**/ b=m/100; /**/
if(a==b) printf("%d\n",m);
}
}
2.将程序填写完整,使其中函数chg能够将一个数组的元素循环左移1个位置,第一个元素存到末尾。
1.将程序填写完整,使程序输出100到999之间所有能被7整除且左右对称的数。
例如:707就是满足条件的数。
#include <stdio.h>
#include <conio.h>
void main()
{
/**/ void find(int m); /**/
int k;
for(k=100; k<=999; k++)
gets(src);
strcpy(tag,src);
turn(tag);
printf("\nThe source string: %s\n",src);
printf("\nThe target string: %s\n",tag);
getch();
}
void turn(/**/strchar str[] /**/)
例如:数组元素为1 2 3 4 5 6 7 8 9 10
则该数组元素循环左移后变为2 3 4 5 6 7 8 9 10 1
#include <stdio.h>
#include <conio.h>
void chg(/**/ int arr[],int n /**/ )
{
int i,temp;
temp=arr[0];
}
return (/**/sgnx /**/);
}
void main()
{
clrscr();
printf("fun(8) = %8.3lf\n", fun(8));
getch();
}
6.修改程序,使其中的函数fun(int m)能根据m元付款金额,输出应支付100元、50元、10元和1元四种纸币的最少张数组和。例如:付款金额为273,应支付2张100元、1张50元、两张10元和3张1元。
{
char tab[4][2]={{'k','a'},{'m','c'},{'o','e'},{'q','g'}};
int /**/i=1i=0 /**/,j;
while( str[i] )
{
for(j=0;j<=3;j++)
{
if(/**/str[i]=tab[j][0]str[i]==tab[j][0] /**/)
}
void main()
{
int m;
printf("Input m(m>=0):");
scanf("%d",&m);
fun(/**/int mm /**/);
getch();
}
7.修改程序,使函数turn( )实现一串字符的解密,方法为:将字母’k’还原成’a’、’m’还原成’c’、’o’还原成’e’、’q’还原成’g’,其他字符保持不变。例如:
输入加密字符串为:qrkphimkl bkso 101
则解密后字符串为:graphical base 101
#include <stdio.h>
#include <string.h>
void main()
{
char src[50],tag[50];
void turn( );
printf("Please input a string: ");
例如,n=8时:
#include <stdio.h>
/**/fun( int n )float fun( int n ) /**/
{
double x = 0.0;
int i,sgn=1;
for(i=3;i<=n;i++)
{x+=sgn/(5+/**/3*i3.0*i /**/);
sgn=sgn*(-1);
return (k);
}
void main()
{
int i;
printf("Input data:");
scanf("%d",&i);
if(i<0)
printf("Input data ereor!");
else
printf("Sum=%ld\n",fun(i));
getch();
}
4.将程序填写完整,使其中函数chg能够求3*3矩阵的转置矩阵。
void fun( int m )
{
int n_100,n_50,n_10,n_1;
n_100=m/100;
n_50=/**/m/50m%100/50 /**/;
n_10=m%50/10;
n_1=/**/m/10m%10 /**/;
printf("100's=%d 50's=%d 10's=%d 1's=%d\n",n_100,n_50,n_10,n_1);
chg(array);
printf("Reversed array:\n");
for(i=0;i<3;i++)
{
for(j=0; j<3; j++) printf("%d ",array[i][j]);
printf("\n");
}
getch();
}
5.修改程序,使函数fun(int n) (n从3开始)计算如下分数之和。
{
str[i]=tab[j][1];
break;
}
}
i++;
}
}
for(i=0; i<n-1; i++)
arr[i]=/**/ arr[i+1]; /**/
arr[n-1]=temp;
}
void main()
{
int a[10],i;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
chg(a,10);
for(i=0;i<10;i++)
printf("%d ",a[i]);
{
temp=array[i][j];
array[i][j]=array[j][i];
/**/ array[j][i]=temp; /**/
}
}
void main()
{
int i,j;
int array[3][3];
printf("Input array:\n");
for(i=0;i<3;i++)
for(j=0; j<3; j++) scanf("%7d",&array[i][j]);
例如:矩阵
12 3
源自文库45 6
78 9
转置后变成:
14 7
25 8
36 9
#include <stdio.h>
#include <conio.h>
int chg(/**/ int array[3][3] /**/)
{
int i,j,temp;
for(/**/ i=0;i<3;i++ /**/)
for(j=i+1;j<3;j++)
getch();
}
3.将程序填写完整,用递归算法求13+23+33+…+n3的值。
#include <stdio.h>
#include <conio.h>
long int fun(int n)
{
long int k;
if(/**/ n==1 /**/ )
k=1;
else
k=/**/ fun(n-1)+n*n*n; /**/
find( k );
getch();
}
void find(int m)
{
int a,b;
if(/**/ (m%7==0) /**/)
{
a=m%10;
/**/ b=m/100; /**/
if(a==b) printf("%d\n",m);
}
}
2.将程序填写完整,使其中函数chg能够将一个数组的元素循环左移1个位置,第一个元素存到末尾。
1.将程序填写完整,使程序输出100到999之间所有能被7整除且左右对称的数。
例如:707就是满足条件的数。
#include <stdio.h>
#include <conio.h>
void main()
{
/**/ void find(int m); /**/
int k;
for(k=100; k<=999; k++)
gets(src);
strcpy(tag,src);
turn(tag);
printf("\nThe source string: %s\n",src);
printf("\nThe target string: %s\n",tag);
getch();
}
void turn(/**/strchar str[] /**/)
例如:数组元素为1 2 3 4 5 6 7 8 9 10
则该数组元素循环左移后变为2 3 4 5 6 7 8 9 10 1
#include <stdio.h>
#include <conio.h>
void chg(/**/ int arr[],int n /**/ )
{
int i,temp;
temp=arr[0];
}
return (/**/sgnx /**/);
}
void main()
{
clrscr();
printf("fun(8) = %8.3lf\n", fun(8));
getch();
}
6.修改程序,使其中的函数fun(int m)能根据m元付款金额,输出应支付100元、50元、10元和1元四种纸币的最少张数组和。例如:付款金额为273,应支付2张100元、1张50元、两张10元和3张1元。
{
char tab[4][2]={{'k','a'},{'m','c'},{'o','e'},{'q','g'}};
int /**/i=1i=0 /**/,j;
while( str[i] )
{
for(j=0;j<=3;j++)
{
if(/**/str[i]=tab[j][0]str[i]==tab[j][0] /**/)
}
void main()
{
int m;
printf("Input m(m>=0):");
scanf("%d",&m);
fun(/**/int mm /**/);
getch();
}
7.修改程序,使函数turn( )实现一串字符的解密,方法为:将字母’k’还原成’a’、’m’还原成’c’、’o’还原成’e’、’q’还原成’g’,其他字符保持不变。例如:
输入加密字符串为:qrkphimkl bkso 101
则解密后字符串为:graphical base 101
#include <stdio.h>
#include <string.h>
void main()
{
char src[50],tag[50];
void turn( );
printf("Please input a string: ");
例如,n=8时:
#include <stdio.h>
/**/fun( int n )float fun( int n ) /**/
{
double x = 0.0;
int i,sgn=1;
for(i=3;i<=n;i++)
{x+=sgn/(5+/**/3*i3.0*i /**/);
sgn=sgn*(-1);
return (k);
}
void main()
{
int i;
printf("Input data:");
scanf("%d",&i);
if(i<0)
printf("Input data ereor!");
else
printf("Sum=%ld\n",fun(i));
getch();
}
4.将程序填写完整,使其中函数chg能够求3*3矩阵的转置矩阵。