//从头写起吧,在最开始的预处理语句。
//———————————————————————–
//正确形式:
#include<stdio.h>
#include"stdio.h"
#include<math.h>
#include<math.h>
//错误形式:
//1.拼写错误
#includ<stdio.h>
include<studio.h>
//2.忘记加入要使用的头文件。比如math.h或者string.h
//注意:之后代码之前都没有写头文件
//———————————————————————–
//正确形式:
int main() {
return 0;
}
//错误形式:
//1.拼写错误
int mian() {
retrun 0;
}
//2.缺少必要的空格或分号
intmian() {
retrun 0;
}
//3.括号不成对出现(一个单独的括号会很伤心的~)
int mian() {
retrun 0;
//———————————————————————- –
//正确形式:
int a, b, c;
int a = 0, b = 0, c = 0;
int a[50];
int a[50] = { 0 };
double t;
double t = 0;
char c = 'a';
char *s = "abcdefg";
//错误形式:
//1.符号使用错误,编写过程不易察觉。。
int a; b; c;
int a = 0; b = 0, c = 0;
char c = "a";
char *s = 'abcdefg';
//2.定义数组使用变量
int i = 50;
int a[i];
//———————————————————————- –
//正确形式:
int main() {
int *a = NULL;
int b = 0;
a = &b;
return 0;
}
//错误形式:
//1.星号使用错误,切记指针的定义和调用之间的不同
int main() {
int *a;
int b = 0;
*a = &b;
return 0;
}
//2.野指针的初始化, NULL必须大写
int main() {
int *a = null;
return 0;
}
//———————————————————————- –
//正确形式:
int main() {
int a = 1;
double b = 2.1;
char c = 'a';
char *s = "abcdefg";
int *p = NULL;
p = &a;
printf("%d", a);
printf("%d", *p);
printf("%.2f", b);
printf("%c", c);
printf("%c", *s);
printf("%s", s);
printf("%p", p);
scanf("%d", &a);
scanf("%lf", &b);
scanf("%c", &c);
scanf("%s", s);
return 0;
}
//错误形式:
//1.格式化文本中的类型与变量类型或数量对应错误
//可以通过编译,但结果可能与预期结果不一致
int main() {
int a = 1;
double b = 2.1;
char c = 'a';
char *s = "abcdefg";
int *p = NULL;
p = &a;
printf("%c", a);
printf("%*.*f", 3, b);
scanf("%lf", &a);
return 0;
}
//2.scanf不加或多加取址符&
int main() {
int a = 1;
int *p = NULL;
p = &a;
scanf("%d", a);
scanf("%d", &p);
return 0;
}
//———————————————————————- –
//正确形式:
int main() {
int a, b, c;
scanf("%d %d %d", &a, &b, &c);
if (a == b) {
//do something
} else if (b <= c) {
//do something
} else if (c >= a && c <= b) {
//do something
} else {
//do something
}
return 0;
}
//错误形式:
//1.逻辑运算符号错误, 引起程序逻辑分支出现问题,得不到正确结果
int main() {
int a, b, c;
scanf("%d %d %d", &a, &b, &c);
if (a = b) {
//do something
} else if (b <= c) {
//do something
} else if (a <= c <= b) {//注意!这种写法是错的!!
//do something
} else {
//do something
}
return 0;
}
//2.if else 级联写法错误,导致编译失败或者程序逻辑错误
//可能出现多余大括号,多余分号。缺少空格,或缺少分号
int main() {
int a, b, c;
scanf("%d %d %d", &a, &b, &c);
if (a == b) {
//do something
}elseif(b <= c) {
//do something
} else if (c >= a && c <= b);
{
//do something
} else {
//do something
};
return 0;
}
//———————————————————————- –
//正确形式:
int add(int x, int y);
int padd(int *x, int *y);
int main() {
int a = 1, b = 2;
int *pa, *pb;
pa = &a;
pb = &b;
printf("%d\n", add(a, b));
printf("%d\n", padd(&a, &b));
printf("%d\n", padd(pa, pb));
return 0;
}
int add(int x, int y) {
return x + y;
}
int padd(int *x, int *y) {
return *x + *y;
}
//错误形式:
//1.参数传递类型错误。
int add(int x, int y);
int padd(int *x, int *y);
int main() {
int a = 1, b = 2;
int *pa, *pb;
pa = &a;
pb = &b;
printf("%d\n", add(&a, &b));
printf("%d\n", padd(a, b));
printf("%d\n", padd(&pa, &pb));
return 0;
}
int add(int x, int y) {
return x + y;
}
int padd(int *x, int *y) {
return *x + *y;
}
//2.声明形式和实际形式不符
void add(int *x, int y);
double padd(int *x, int *y);
int main() {
int a = 1, b = 2;
int *pa, *pb;
pa = &a;
pb = &b;
printf("%d\n", add(a, b));
printf("%d\n", padd(&a, &b));
printf("%d\n", padd(pa, pb));
return 0;
}
float add(int x, int y) {
return x + y;
}
void padd(int *x, int *y) {
return *x + *y;
}
//———————————————————————-
//通过考试不是目的,提高自己的程序编写能力才是重要的~
//如果你看到了这里,感谢你的耐心!
//记的,细节决定成败。。