用天梯赛打开暑假生活第一天

发布时间 2023-06-17 02:11:56作者: 寒心小呆

从坐牢到入门的程序设计(1)

开始时间2023-06-16 20:36:47

结束时间2023-06-17 02:04:26

 前言:前言是没有前言,困了不写了。

L1-001 Hello World

一、题目要求

 二、程序功能测试及说明

  输出Hello World!

 三、程序设计思路及结构说明

  int main后主函数输出“Hello World!”信息。

 四、程序源代码

#include<stdio.h>
int main()
{
    printf("Hello World!\n");
}

 L1-002 打印沙漏

一、题目要求

 二、程序功能测试及说明

  输入整数和字符,然后打印沙漏,最后输出剩余字符。

 三、程序设计思路及结构说明

  首先输入一个整数,然后再输入一个字符。三角形从上到下为1,3,5...很明显和为平方数,存在三个要素,三角形的长度,高度和空格。要满足这个沙漏,数量必须大于或等于2n方-1,n为高度,声明变量高度和长度,高度和长度存在关系。在进行下面的程序之前我们要探究n的值,以高度作为初始表达式,做一个选择控制语句,当整数值小于高度的平方结束循环。长度为两倍高度-1,打印沙漏时分为上沙漏和下沙漏,先打印上沙漏。以高度为范围i为初始表达式做循环,第二循环表达式不超过时打印空格,第二循环表达式不超过长度-两倍的i时打印符号,最后换行,循环结束。接着打印下沙漏,以高度为范围i为初始表达式做循环,第二循环表达式以i为初值不超过高度-2时打印空格,第二循环表达式不超过3+两倍的i输出符号,循环结束。剩余字符为n-两倍高度的平方+1。最后输出剩余字符程序结束。

 四、源代码

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n;
    char p;
    cin>>n>>p;
    int i=0,j=0,k=0;
    int length,height;
    int b=n/2;
    for(height=1;height<n;height++)
    {
        if(b<height*height)break;
    }
    //printf("%d",height);
    
    if(height==1)
    {
        height=1;
    }
    else height-=1;
    length=2*height-1;
    //printf("%d",height);
    for(i=0;i<height;i++)
    {
        for(j=0;j<i;j++)
        {
            printf(" ");
            
        }//printf("%d",j);
        for(j=0;j<length-2*i;j++)
        {
            //printf("hhh");
            printf("%c",p);
        }printf("\n");
    }
    //printf("%d",j);
    for(i=0;i<height-1;i++)
    {
        for(j=i;j<height-2;j++)\
        {
            
            printf(" ");
        }
        for(j=0;j<3+2*i;j++)
        {
            printf("%c",p);
        }
        printf("\n");
    }
    int sum=n-2*height*height+1;
    printf("%d\n",sum);
    return 0;
}

L1-003 个位数统计

一、题目要求

 二、程序功能测试及说明

  功能是通过输入数字,按照格式输出数字出现的次数。注意,数组定义要在主函数之外。

 三、程序设计思路及结构说明

  以字符串形式输入数字n,i作为循环初始表达式,小于字符串长度做循环,用n字符串每个字符与0字符的差距作为数组下标将数组反复进行++操作,若数组中的值大于0,按照格式输出。

 四、源代码

#include<bits/stdc++.h>
using namespace std;
int num[10];
int main()
{
    string n;
    cin>>n;
    
    int i=0;
    for(i=0;i<n.length();i++)
    {
        num[n[i]-'0']++;
    }
    for(i=0;i<10;i++)
    {
        if(num[i]>0)
        {
            cout<<i<<":"<<num[i]<<endl;
        }
    }
    return 0;
}

L1-004 计算摄氏温度

一、题目要求

 二、程序功能测试及说明

  输入华氏温度,按要求计算摄氏温度并输出。注意不要打错摄氏度的英文。

 三、程序设计思路及结构说明

  在主函数内定义f和c,输入f的值,计算c的值,按照格式输出。

 四、源代码

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int f,c;
    cin>>f;
    c=5*(f-32)/9;
    cout<<"Celsius = "<<c<<endl;
    return 0;
 }

L1-005 考试座位号

一、题目要求

 二、程序功能测试及说明

  功能是先说有几名同学,输入考号、试机号、座位号,接着给出查找个数,再输要找的试机号,最后输出考号和座位号信息。

 三、程序设计思路及结构说明

  可以用结构体做,但我一开始用数组模拟了,但是定义长数组时,会有答案错误,后来结果检验发现以00开头输入考号,00消失,后用字符数组代替长数组吸收准考证号,可以解决。

 四、源代码

#include<stdio.h>
#include<string.h>
char s[1005][20];
int a[1005];
int main() 
{
    int n; 
    scanf("%d", &n);
    for(int i = 0; i < n; i++) 
    {
        int x1, x2;
        scanf("%s%d%d", s[0], &x1, &x2);
        strcpy(s[x1], s[0]);
        a[x1] = x2; 
    }
    scanf("%d", &n);
    for(int i = 0; i < n; i++) 
    {
        int x; scanf("%d", &x);
        printf("%s %d\n", s[x], a[x]);
    }
return 0;  
} 

 总结:总结是没有总结,困了不想写。

每日一mo:四级和期末放在一起,你说是保大还是保小吧......大家四级加油!!!