初学C语言,课后作业记录
- 介绍
- 1.编程求一个数绝对值,并上机调试。(分别用直接编程的方法和函数调用的方法实现)
- 2.1编程计算1+2+3+...+100。
- 2.2编程计算1+2+3+...+n。(n为输入的正整数,可用函数编程方法实现)
- 2.3编程计算m+(m+1)+(m+2)+...+n。
- 3.编写程序,输入a、b、c三个数,要求按从小到大的顺序输出。
- 4.编程实现两个整数的加减乘除四则运算,功能要求:屏幕上输入两个整数和某个运算符,程序可以根据运算符对应的四则运算给出正确的运行结果。
- 5.编程验证卡拉兹(Callatz)猜想:对一个正整数 n,如果它是偶数,那么n/2,如果它是奇数,那么 (3n+1) ,这样一直反复下去,最后一定在某一步得到 n=1。
- 感谢观看!
介绍
本文是作者学习C语言的记录,初学上路,误撞勿怪,嘿嘿!
本文所有代码均已成功运行,如有错误,可能是编辑本文时误操作所致。
本文所有代码仅为完成任务,漏洞颇多,输入数据时请规范输入。
1.编程求一个数绝对值,并上机调试。(分别用直接编程的方法和函数调用的方法实现)
直接编程:
#include <stdio.h>//直接编程法如下
int main()
{
int a,b;
printf("请输入一个整数:\n");
scanf("%d",&a);
if(a < 0)
{
b = -1*a;
printf("%d的绝对值是:%d\n",a,b);
}
else
{
printf("%d的绝对值是:%d\n",a,a);
}
return 0;
}
程序测试如下:
函数调用:
这里用的是abs()函数,增加头文件<math.h>和<stdlib.h>。
#include <stdio.h>//函数调用法如下
#include <math.h>
#include <stdlib.h>
int main()
{
int a,b;
printf("请输入一个整数,我们将输出它的绝对值:\n");
scanf("%d",&a);
b = abs(a);
printf("%d的绝对值是%d",a,b);
return 0;
}
程序测试如下:
2.1编程计算1+2+3+…+100。
代码如下:
#include <stdio.h>
int main()
{
int i,sum = 0;
for(i=1;i<=100;i++)
{
sum = sum + i;
}
printf("%d",sum);
return 0;
}
程序测试如下:
2.2编程计算1+2+3+…+n。(n为输入的正整数,可用函数编程方法实现)
代码如下:
#include <stdio.h>
int main()
{
int a,i,sum=0;
printf("请输入一个正整数:\n");
scanf("%d",&a);
for(i=1;i<=a;i++)
{
sum = sum + i;
}
printf("1+2+3+...+%d=%d",a,sum);
return 0;
}
程序测试如下:
2.3编程计算m+(m+1)+(m+2)+…+n。
代码如下:
#include <stdio.h>
int main()
{
int a,b,c,d,e=0;
printf("请输入两个正整数:\n");
scanf("%d,%d",&a,&b);
for(c=1;c<=b-a+1;c++)
{
d = a;
e = e + d;
d = d + 1;
}
printf("%d+(%d+1)+(%d+2)+...+%d=%d",a,a,a,b,e);
return 0;
}
程序测试如下:
3.编写程序,输入a、b、c三个数,要求按从小到大的顺序输出。
代码如下:
#include <stdio.h>//练习如下
int main()
{
int a,b,c,i,j,t,e[2]={0};
printf("请输入三个数字:\n");
scanf("%d,%d,%d",&a,&b,&c);
e[0] = a;
e[1] = b;
e[2] = c;
for(i=0;i<3;i++)
{
for(j=1;j<3-i;j++)
{
if(e[j-1]>e[j])
{
t = e[j-1];
e[j-1] = e[j];
e[j] = t;
}
}
}
printf("The min to max is:\n");
for(i=0;i<3;i++)
{
printf("%d ",e[i]);
}
return 0;
}
程序测试如下:
4.编程实现两个整数的加减乘除四则运算,功能要求:屏幕上输入两个整数和某个运算符,程序可以根据运算符对应的四则运算给出正确的运行结果。
代码如下:
1.这里用浮点数来做输入变量类型,主要考虑除的时候的准确性问题。
2.这里采用strcmp()函数来比较输入运算符。
#include <stdio.h>
int main()
{
float a,b,c;
char i[10];
printf("请输入两个整数及其运算符(加减乘除>>+/-*,如1 * 2,注意加空格):\n");
scanf("%f %s %f",&a,i,&b);//这里输入数据之间要加个空格
if(!strcmp(i , "+"))
{
c = a + b;
printf("%f%s%f=%f",a,i,b,c);
}
if(!strcmp(i , "-"))
{
c = a - b;
printf("%f%s%f=%f",a,i,b,c);
}
if(!strcmp(i , "*"))
{
c = a * b;
printf("%f%s%f=%f",a,i,b,c);
}
if(!strcmp(i , "/"))
{
c = a / b;
printf("%f%s%f=%f",a,i,b,c);
}
return 0;
}
程序测试如下:
5.编程验证卡拉兹(Callatz)猜想:对一个正整数 n,如果它是偶数,那么n/2,如果它是奇数,那么 (3n+1) ,这样一直反复下去,最后一定在某一步得到 n=1。
代码如下:
#include <stdio.h>
int main()
{
int a;
printf("请输入一个正整数来验证卡拉兹猜想:\n");
scanf("%d",&a);
while(a != 1)
{
if(a%2 == 0)
{
a = a/2;
printf("%d ",a);
}
else
{
a = 3*a + 1;
printf("%d ",a);
}
}
return 0;
}
程序测试如下: