#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:
#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; }