标签:简单 水仙花 答案 约数 distance 出错 sig 变量定义 实验代码
#include <stdio.h>
#include <math.h>
double dist( double x1, double y1, double x2, double y2 );
int main()
{
double x1, y1, x2, y2;
scanf("%lf %lf %lf %lf", &x1, &y1, &x2, &y2);
printf("dist = %.2f\n", dist(x1, y1, x2, y2));
return 0;
}
/* 你的代码将被嵌在这里 */
double dist( double x1, double y1, double x2, double y2 )
{
double distance;
distance = sqrt(pow(x1-x2,2)+pow(y1-y2,2));
return distance;
}
第一步输入自定义函数名称
第二步定义变量
第三步计算距离
问题:变量定义出错
解决方法:重新定义
#include <stdio.h>
int sign( int x );
int main()
{
int x;
scanf("%d", &x);
printf("sign(%d) = %d\n", x, sign(x));
return 0;
}
/* 你的代码将被嵌在这里 */
int sign( int x )
{
int s;
if(x>0){
s = 1;
}
else if(x==0){
s = 0;
}
else{
s = -1;
}
return s;
}
第一步 使用if-else语句对于X不同情况的讨论
第二步 分别输出答案
问题:返回值错误
本题要求实现一个函数计算两个复数之积。
#include<stdio.h>
double result_real, result_imag;
void complex_prod( double x1, double y1, double x2, double y2 );
int main(void)
{
double imag1, imag2, real1, real2;
scanf("%lf %lf", &real1, &imag1);
scanf("%lf %lf", &real2, &imag2);
complex_prod(real1, imag1, real2, imag2);
printf("product of complex is (%f)+(%f)i\n", result_real, result_imag);
return 0;
}
/* 你的代码将被嵌在这里 */
1)实验代码
void complex_prod( double x1, double y1, double x2, double y2 )
{
result_real = x1*x2 - y1*y2;
result_imag = x1*y2 + x2*y1;
}
将算式写出即可
问题:使用了返回值
解决方法:去掉返回值
#include <stdio.h>
int gcd( int x, int y );
int main()
{
int x, y;
scanf("%d %d", &x, &y);
printf("%d\n", gcd(x, y));
return 0;
}
/* 你的代码将被嵌在这里 */
1)实验代码
int gcd( int x, int y )
{
int i,j,result;
for(i=1;i<=x;i++){
for(j=1;j<=y;j++){
if(x%i==0&&y%j==0)
if(i==j) result=i;
}
}
return result;
}
第一步 依次找出两个数的公约数
第二步 判断两个数的公因数是否相等,再循环赋值,得到最大公约数
第三步 返回值
注意主函数名称后面不能加标点
#include <stdio.h>
int narcissistic( int number );
void PrintN( int m, int n );
int main()
{
int m, n;
scanf("%d %d", &m, &n);
if ( narcissistic(m) ) printf("%d is a narcissistic number\n", m);
PrintN(m, n);
if ( narcissistic(n) ) printf("%d is a narcissistic number\n", n);
return 0;
}
/* 你的代码将被嵌在这里 */
1)实验代码
int narcissistic(int number)
{
int digit, powersum, integer, count;
count = 0;
integer = number;
while(integer > 0)
{
integer = integer / 10;
count++;
}
powersum = 0;
integer = number;
for(int i=0; i < count; i++)
{
digit = integer % 10;
integer = integer / 10;
powersum = powersum + pow(digit, count);
}
if(powersum == number)
return 1;
else
return 0;
}
void PrintN(int m, int n)
{
int i;
for(i = m + 1; i < n; i++)
if (narcissistic(i) == 1)
printf("%d\n", i);
}
第一步使用while循环统计他的位数,并得到每位上的数字
第二步使用for循环得到他的余数。并计算,每位上数字的位数方的结果
第三步使用if-else语句来判断是否为水仙花数
此题需要再定义一个函数来打印区间,此时应当把返回1和返回0的代码放入此函数
标签:简单 水仙花 答案 约数 distance 出错 sig 变量定义 实验代码
原文地址:https://www.cnblogs.com/lmcmha/p/10160678.html