C语言(五)— 函数与结构体

全局变量与局部变量

#include<stdio.h>

using namespace std;

int n;
int main()
{
    int m = 0;
    printf("%d %d", n, m);
    return 0;
} 

函数基础

一个典型的函数定义包括以下部分:返回类型、函数名字、由0个或多个形参组成的列表以及函数体。

#include <stdio.h>

void f1()
{
    
}

int f2()
{
    return 8;
}
int f3()
{
    return f2();
}

int main()
{
    f1();
    int n = f2();
    f2();
    printf("%d", n);
}

练习0:

给你n个数, 分别求他们得阶乘并输出

#include <stdio.h>

int fact(int n)
{
    int res = 1;
    for(int i = n; i >= 1; i --)
        res *= i;
    return res; 
}
int main()
{
    int n;
    scanf("%d", &n);
    while(n --)
    {
        int a;
        scanf("%d", &a);
        printf("%d\n", fact(a));
    }
}

值传递引用

猜猜会输出什么?

#include <stdio.h>

void swap(int a, int b)
{
    int t = a;
    a = b;
    b = t;
}
int main()
{
    int n, m;
    scanf("%d%d", &n, &m);
    swap(n, m);
    printf("%d %d", n, m);
    return 0;   
} 

引用自身(递归)

再求斐波那契数列

#include <stdio.h>

int f(int n)
{
    if(n == 1) return 1;
    if(n == 2) return 1;
    return f(n - 1) + f(n - 2);
}
int main()
{
    int n;
    scanf("%d", &n);
    while(n --)
    {
        int x;
        scanf("%d", &x);
        printf("%d\n", f(x));
    }
    return 0;
}

结构体

#include <stdio.h>
struct Person
{
    int age;
    int height;
    double money;
    char name[10];
    void say()
    {
        printf("i am %s", name);
    }
} person = {18, 200, 10000, "ming"};
int main()
{
    person.say();
    return 0;
}

练习1:P5744 【深基7.习9】培训 – 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

#include<stdio.h>
struct student{
    char name[21];
    int year;
    int score;
};
int main(){
    int n,i;
    struct student a[100];
    scanf("%d",&n);
    for(i=0;i<n;i++){
        scanf("%s %d %d",a[i].name,&a[i].year,&a[i].score);
        a[i].year++;
        a[i].score=a[i].score*1.2;
        if(a[i].score>600){
            a[i].score=600;
        }
    }
    for(i=0;i<n;i++)
    printf("%s %d %d\n",a[i].name,a[i].year,a[i].score);
    return 0;
}

上一篇
下一篇