华北水利水电大学(C语言)实验报告(六)答案

楼主

CJSEU [离线]

1★☆☆☆☆

发帖数:434 积分1424
1楼


1)分别求出数组中所有3的倍数之和以及5的倍数之和。形参n给了数组中数据的个数,利用指针three返回3的倍数之和,利用指针five返回5的倍数之和。例如:数组中的值依次为:1,5,9,2,3,15,11,6,10;则利用指针three返回3的倍数之和33;利用指针five返回5的倍数之和30。请在下面空白处完善这一函数的功能,并且调试运行出结果。
源代码:
#include <stdio.h>
#define N 20
void fun(int *a,int n,int *three,int *five)
{ int i;
*three=0;*five=0;
for(i=0;i<n;i++)
if(a[i]%3==0)
*three+=a[i];
for(i=0;i<n;i++)
if(a[i]%5==0)
*five+=a[i]; }
void main()
{
int a[N]={1,5,9,2,3,15,11,6,10},i,n=9,three,five;
printf("The original data is:\n");
for(i=0;i<n;i++)
printf("%5d",*(a+i));
printf("\n\n");
fun(a,n,&three,&five);
printf("3的倍数之和:%d\n",three);
printf("5的倍数之和:%d\n",five);
}}
运行结果:
The original data is:
1 5 9 2 3 15 11 6 10

3的倍数之和:33
5的倍数之和:30
Press any key to continue


2)从键盘输入一个字符串,实现利用字符指针将字符串的字符顺序逆置并输出。(例如输入abcdef,输出fedcba)。请编写相应的程序代码,并调试运行出正确结果。
源代码: :
#include<stdio.h>
#include<string.h>
void main()
{
int i;
int length;
char str[80];
char s;
printf("请输入一个字符串:\n");
scanf("%s",str);
length=strlen(str);
printf("字符串逆序输出为:\n");
for(i=length;i>0;i--)
{
s=str[i-1];
printf("%c",s);
}
printf("\n");}
void fun(char *s)
{
int i,length;
char temp;
length=strlen(s);
for(i=0;i<length/2;i++)
{temp=s[i];
s[i]=s[length-i-1];
s[length-i-1]=temp;
}
}
运行结果:
请输入一个字符串:
abcdef
字符串逆序输出为:
fedcba
Press any key to continue



签名档

加油。

2017/12/28 5:25:08
返回本版
1

请您先 登录 再进行发帖

快速回复楼主