1、在显示器上输出字符串 I am a student
#include<stdio.h>
int main(void)
{
printf(" I am not a stdudent\n");
return 0;
}
3、输入一个角度,计算x对应的正切值(提示:math.h中tan()函数)
180°等于1弧度。
角度(angle):
弧度(radian):
#include<stdio.h>
#include <math.h>
#define PI 3.1415926 //必须指定确切的数
int main(void)
{
double x = 0;
printf("Enter a value: ");
scanf("%lf",&x);
x = (PI * x )/180; //角度和弧度的转换规则
printf(" tan(x) = %.0lf\n",tan(x));
return 0;
}
错误
#include <stdio.h>
#include <math.h>
#define PI 3.14159265
int tan (void)
{
double x = 0;
printf("Enter the value: \n");
scanf("%lf",&x);
x = tan ( x * PI / 180.0 );
printf ("The tangent of %f degrees is %f.\n", x, tan(x) );
return 0;
}
2、从键盘上输入三个学生的考试成绩,计算其平均分并输出。(不存储上面的分数)
(1) 不使用数组解决平均分问题
存在问题一:
不清楚使用什么类型的数据类型
存在问题二:
不知道到怎么转换类型
#include<stdio.h>
int main(void)
{
int count = 3;
double grades =0L;
double sum =0L;
float average =0;
for( unsigned int i = 0; i<count; ++i)
{
printf("请输入三个学生的成绩: \n");
scanf("%ld",&grades);
sum += grades;
}
average = (double)sum / count ;
printf("这三个学生的平均分%lf: \n",average);
return 0;
}
(2)不是用数组计算平均分(存储分数)
#include<stdio.h>
int main(void)
{
double sum = 0;
float average =0;
int grade 0 = 0, gade1 = 0, grade2= 0;
printf("Enter the three grades,\n");
scanf("%d%d%d",&grade0,&grade1,&grade2);
sum = grade0 +grade1 +grade2;
average = sum / 3.0f;
printf("这三个学生的平均分%lf: \n",average);
return 0;
(3) 使用数组解决平均问题
#include<stdio.h>
int main(void)
{
int grades[3];
int count = 3;
double sum =0;
float average = 0;
printf("请输入成绩: \n");
for(unsigned int i = 0; i < count ; ++i)
{
printf("
scanf("%ld",&grades[i]);
sum += grades[i]
}
average = sum / count;
printf("这三个学生的平均分%lf: \n",average);
return 0;
}
4、输入两个数,输出其中的大者
#include <stdio.h>
int main(void)
{
int a = 0;
int b = 0;
printf("请输入两个数: \n");
scanf("%d %d",&a,&b);
if(a>b)
{
printf(" Max number is %d,"a);
}
else
{
printf("Max number is %d", b);
}
return 0;
}
9、从键盘输入两个数,求出其中的大者。
#include<stdio.h>
int main(void)
{
int x = 0;
int y = 0;
int z = 0;
printf("请输入两个数: \n");
scanf("%d %d",&x,&y);
if(x >y)
{
z=x;
}
else
{
z=y;
}
printf("Max number is %d\n",z);
return 0;
}
6、从键盘输入两个数,求出这两个数中的小者并将结果输出。
#include stdio.h>
int main(void)
{
int a = 0;
int b = 0;
printf("请输入两个数:\n");
scanf("%d %d",&a,&b);
7、从键盘输入两个数,将这两个数交换之后输出。
(1)先存储,再取出来,交换之后再存储。(问题是取出来之后放在哪里呢?)
(2)由于数据都在内存中存储,把变量存入到盒子中,找到一个临时变量,把一个盒子的值赋值给一个变量,这个盒子就空了,然后另一值赋值给第一个盒子,第二个盒子就空了,再把临时变量的值赋给第二个变量,即可。
(3)有两个盒子,A盒子里面有两个黑色的球,B盒子里面有三个白色的球,
第一步是A盒子里的两个黑色的球+三个白色的球(就有5个球),第二步是把5个球减去3个白色的球(2个黑色的球),第三步是把5个球减去两个黑色的球(3个白色的球)
易读性
#include <stdio.h>
int main(void)
{
int number1 = 0;
int number2 = 0;
printf("请输入两个数:\n");
scanf("%d %d",&number1,&number2);
printf("number1 = %d, number2 = %d\n",number1,number2);
//1、number1 = number1 + number2;
//2、number2 = number1 - number2;
//3、number1 = number1 - number2;
int temp = 0;
temp = number1;
number1 = number2;
number2 = temp;
printf("number1 = %d ,number2 = %d\n",number1,number2);
return 0;
}
8、从键盘输入一个数,将该数的绝对值输出。
方法一
#include <stdio.h>
int main(void)
{
int a = 0;
printf("请输入一个数字: \n");
scanf("%d",&a);
if(a >=0)
{
printf("%d\n",a);
}
else
{
a = (-a);
printf("%d\n",a);
}
return 0;
}
方法二: 求取绝对值 是fabs()函数 double类型的lf 、 、 float 类型的f
#include <stdio.h>
#include <math.h>
int main(void)
{
float a = 0;
printf("请输入一个数: ");
scanf("%f",&a);
printf("fabs(a) = %.0f\n",fabs(a));
return 0;
}
5、求1~100的和。
#include<stdio.h>
int main(void)
{
int count = 100;
int sum = 0;
//read the number of integers to be sum
printf("\nEnter the number of integer you want to sum:\");
scanf("%d",&count);
//sum integers from 1 to count
for(unsigned int i =0; i < count; ++i)
sum += i;
printf("\nTotal of the first %u number is %llu\n",count, sum);
return 0;
}
输出结果为:
Enter the number of integers you want to sum:
Total of the first 10 integers is 55
10、编写一个程序,求1~100中的质数(素数)。
就是在所有比1大的整数中,除了1和它本身以外,不再有别的约数,(能被整除的个数小于<3)这种整数叫做质数
当被除数/除数的余数是零表示除数能被(被除数)整除
怎样判断一个数是质数呢?
问题一:练习这一题可以加深理解嵌套的for循环。
先判断条件,然后执行循环体,
问题二:运算符/和%的使用,如果使用{(i%j)==0}可以判断i 有多少个约数。只有1和它本身这两个约数的数是质数。
问题三:
自己没有真正的理解的内容,即使你抄下来了也不是你自己的东西。
#include <stdio.h>
int main1(void)
{
for (int i = 2; i <= 100; i++) {
// 判断 i 是否为质数
int count = 0;
for (int j = 1; j <= i; j++) {
// 判断 i % j 是否为 0
if (i % j == 0) {
// 计数:计算 i 有多少个约数
count += 1;
}
}
// 判断约数的个数是否小于 3
if (count < 3) {
printf("%d 是质数\n", i);
}
}
return 0;
}
#include <stdio.h>
int main() {
int number = 0;
printf("请输入一个整数(2 ~ 100):");
scanf("%d", &number);
int count = 0;
for (int i = 1; i <= number; i++) {
if (number % i == 0) {
count += 1;
} else {
// Do nothing
}
}
if (count < 3) {
printf("%d 是质数\n", number);
}
return 0;
}
12、求1~100中的所有奇数之和。
#include<stdio.h>
int main(void)
{
int sum = 0;
int count = 0;
printf("\nEnter the number you want to sum: ");
scanf("%d", &count);
for (unsigned int n = 0; n <= count; ++n)
{
sum += (2 * n + 1);
}
printf("1~100的所有基数和%d: \n", sum);
return 0;
}
11、从键盘输入一个数并求其阶乘值
自己上午写的程序,到了晚上竟然忘记怎么写了。
#include <stdio.h>
int main(void)
{
int a =0;
int sum = 1;
printf("请输入一个数:");
scanf("%d",&a);
for( int n =1; n<= a; ++n)
{
// sum= sum * [n(n-1)(n-2)(n-3)....4*3*2*1]
sum *= n;
}
printf("%d!= %d\n",a,sum);
return 0;
}
13、编写程序,要求从键盘输入N, 求1/3+2/4+3/5+。。。n-2/n
i 是循环控制变量的初值。n是循环判断的条件。
+=运算符是为了实现在本身基础上继续加;
问题一:
如何实现强制类型转换(不理解如何实现)
问题二:
for循环的具体操作不清楚。
问题三:
打印的操作的目的是什么呢?
#include <stdio.h>
int main(void)
{
int n = 0;
float result =0;
printf("请输入一个不小于3的数: \n");
scanf("%d",&n);
for(int i = 3; i <= n; ++i)
{
result += (float)(i-2)/i;
}
printf("%f\n",result);
return 0;
}
网友评论