首页 > 其他分享 >实验1

实验1

时间:2022-10-12 19:44:59浏览次数:30  
标签:main int scanf 实验 printf include getchar

task1_1

源代码

#include<stdio.h>
int main()
{
    printf(" O \n");
    printf("<H>\n");
    printf("I I\n\n\n");
    
    printf(" O \n");
    printf("<H>\n");
    printf("I I\n");
    
    return 0;
}

 运行截图

task1_2

 源代码

#include<stdio.h>
int main()
{
    printf(" O   %16  O \n");
    printf("<H>  %16 <H>\n");
    printf("I I  %16 I I\n");
    

    return 0;
}

 运行截图

 task2_2

源代码

#include<stdio.h>
#include<math.h>

int main()
{
    double x,ans;
    
    while(scanf("%lf",&x)!=EOF){
    
    
    ans=pow(x,365);
    printf("ans=%f\n",ans);
    
}
    return 0;
}

 

 task2_3

源代码

#include<stdio.h>
#include<math.h>

int main()
{
    double x,ans;
    
    while(scanf("%lf",&x)!=EOF){
    
    
    ans=(9.0/5)*x+32; //注意要将9/5转换为double类型计算,否则结果永远是32。
    printf("摄氏度c=%f时,华氏度f=%.2f\n",x,ans);

    
}
    return 0;
}

 task3

源代码

#include<stdio.h>
#include<math.h>

int main()
{
    double n,sum;
    printf("n=");
    scanf("%lf",&n);
    sum=(1-pow(2.0,n))/(1-2);
    printf("sum=%f",sum);
    
    


    

    return 0;
}

 

 思考:答案错误,精度不足

            将数据类型从double 改为 long double即可

#include<stdio.h>
#include<math.h>

int main()
{
    long double n, sum, x;

    printf("n=");
    scanf_s("%lf", &n);
    x = pow(2.0, n);
    sum = (1 - x) / (1 - 2.0);
    printf("sum=%lf", sum);






    return 0;
}

运行截图:

 

 task 4

修改后的代码:

#include<stdio.h>
int main()
{
    double x, y;
    char c1, c2, c3;
    int a1, a2, a3;
    scanf_s("%d%d%d", &a1, &a2, &a3);
    printf("%d,%d,%d\n", a1, a2, a3);
    getchar();
    c1 = getchar();
   // printf("1\n");
    c2 = getchar();
   // printf("2\n");
    c3 = getchar();
    //printf("3\n");
    getchar();
    printf("%c\n", c1);
    printf("%c\n", c2);
    printf("%c\n", c3);
    scanf("%lf,%lf", &x, &y);
    printf("%f,%lf\n", x, y);
    return 0;//因为用scanf总是出现奇奇怪怪的错误 所以改用getchar,因为不知道程序到底进行到哪一步出了问题 所以中间添加了printf看程序进行到了哪一步
}

运行截图:

 

 

 task5:

源代码:

#include <stdio.h>
#define _CRT_SECURE_NO_WARNINGS
int main()
{
    int age1, age2;
    char gender1, gender2;
    scanf("%d%c%d%c", &age1, &gender1, &age2, &gender2);
    printf("age1 = %d, gender1 = %c\n", age1, gender1);
    printf("age2 = %d, gender2 = %c\n", age2, gender2);
    return 0;
}

 

 task6

源代码:

#include <stdio.h>
int main()
{
    char ans1, ans2;
    printf("每次课前认真预习、课后及时复习了没? (输入y或Y表示有,输入n或N表示没有) :");
        ans1 = getchar(); 
    getchar(); 
    printf("\n动手敲代码实践了没? (输入y或Y表示敲了,输入n或N表示木有敲) : ");
    ans2 = getchar();
    if ((ans1=='Y' || ans1 == 'y') && (ans2 == 'Y' || ans2 == 'y'))
        printf("\n罗马不是一天建成的, 继续保持哦:)\n");
    else
        printf("\n罗马不是一天毁灭的, 我们来建设吧\n");
    return 0;
}

 

 task7

#include <stdio.h>
int main()
{
    int answer;
    char words[5000];
    printf("网课学习让一些人欢喜一些人忧.\n");
    printf("1. 作为喜欢自学且自律的人,觉得这样很好. 有网络,自主学习,很ok.\n");
    printf("2. 不喜,不喜,很不喜. 眼睛快瞎了. 脑壳有点卡...\n");
    printf("3. 中间派. 不知道. 说不清.\n");
    printf("4. 其它...\n");
    printf("你的选择: ");
    scanf("%d", &answer);
    if (answer == 4)
    {
        printf("请补充说明你的想法: \n");
        getchar(); // 这一行去掉之后会导致get(words)失效 因为回车键给到了get(words)
        gets(words); 
    }
    printf("\n");
    printf("当遇到问题时, 你会选择:\n");
    printf("1. 遇到问题, 就解决问题。不懂的,搜索式学习,逐个攻破.\n");
    printf("2. 遇到问题, 不高兴。然后,...,没有了.\n");
    printf("3. 其它...\n");
    printf("你的选择: ");
    scanf("%d", &answer);
    if (answer == 1)
        printf(":)\n");
    else if (answer == 2)
        printf("这样不能解决问题啊...我们选择1好不好:)\n");
    else if (answer == 3)
    {
        printf("请补充说明你的想法: \n");
        getchar(); 
        gets(words); 
    }
    return 0;
}

 

 实验总结

1:注意要将9/5转换为double类型计算。

2:中间添加了printf看程序进行到了哪一步,以更好地判断程序哪里除了问题。   例如getchar();用于吃掉enter键

3:易错点:scanf("%d",&a)不加取址符&

                    scanf的输入问题:scanf("%d %c",&a,%char1); 中间的空格可以吃掉输入时所有的空格;

                                                %d%c%d%c输入的对应格式应该是数字字符(spacekey)数字字符

标签:main,int,scanf,实验,printf,include,getchar
From: https://www.cnblogs.com/meijianfeng/p/16783259.html

相关文章

  • 实验4:开源控制器实践——OpenDaylight
    实验4:开源控制器实践——OpenDaylight一、实验目的能够独立完成OpenDaylight控制器的安装配置;能够使用Postman工具调用OpenDaylightAPI接口下发流表。二、实验环境U......
  • 实验二 类和对象(2)
    实验结论task4Complex.hpp#include<iostream>#include<math.h>usingnamespacestd;classComplex{public:Complex(doublex=0,doubley=......
  • 0day安全:软件漏洞技术分析-Crack小实验
    Crack小实验#include<stdio.h>#definePASSWORD"1234567"intverify_password(char*password){ intauthenticated; authenticated=strcmp(password,PASSWORD)......
  • 实验二
    1#pragmaonce2#include<iostream>3#include<cmath>4usingnamespacestd;5classComplex6{7friendComplexadd(Complexc1,Complexc2);......
  • 实验二 类和对象
    #include<iostream>#include<cmath>usingnamespacestd;classComplex{public:Complex(doublea=0,doubleb=0):real{a},imag{b}{};Complex(......
  • 实验4:开源控制器实践——OpenDaylight
    实验4:开源控制器实践——OpenDaylight一、实验目的能够独立完成OpenDaylight控制器的安装配置;能够使用Postman工具调用OpenDaylightAPI接口下发流表。二、实验环境......
  • 实验二 类与对象
    实验4不使用C++标准库,自行设计并实现一个简化版复数类Complex.1#pragmaonce2#include<bits/stdc++.h>3usingnamespacestd;4classComplex5{6public......
  • 实验5:开源控制器实践——POX
    一、基础要求1、使用tcpdump验证Hub模块h1pingh22、使用tcpdump验证Switch模块L2_learning模块代码流程图h1pingh2h1pingh3二、进阶要求1、重新搭建......
  • 实验2 类与对象(2)
    实验结论:实验任务四:Complex.hpp:#pragmaonce#include<iostream>#include<math.h>usingnamespacestd;classComplex{public:Complex(doubler=0,do......
  • 实验5:开源控制器实践——POX
    一、基本要求1.构建拓扑2.使用tcpdump验证Hub1)h1pingh22)h1pingh33.tcpdump验证Switch模块1)h1pingh22)h1pingh34.L2_learning模块代码流程图二、......