初始C语言(2)
1.多次输入模板
while (scanf("%d", &a)!=EOF )//多组输入
例题:
题解:
#include<stdio.h>
int main()
{
int a,b;
while(scanf("%d %d",&a,&b)!=EOF)
{
if(a>b)
{
printf("%d>%dn",a,b);
}
if(a<b)
{
printf("%d<%dn",a,b);
}
if(a==b)
{
printf("%d=%dn",a,b);
}
}
return 0;
}
运行结果为:
2.static修饰局部变量
基本概念:
上代码比较:
void test()
{
int a = 5;
a++;
printf("%d", a);
}
int main()
{
int m = 0;
while (m < 10)
{
test();
m++;
}
return 0;
}
运行结果:
但是如果加上了static
void test()
{
static int a = 5;
a++;
printf("%d ", a);
}
int main()
{
int m = 0;
while (m < 10)
{
test();
m++;
}
return 0;
}
运行结果:
具体原理:
普通的数据类型储存的数组储存在栈区,按照本例子理解就是每次执行完test后,改数据就结束了自己的生命周期就会被销毁,如果加入static会使得改数据储存在静态区。
3.字符串的结束符举例
上代码:
int main()
{
printf("abcdefn");
printf("abcdef");
return 0;
}
运行结果:
4.逗号表达式
概念:逗号表达式,表达式会从左到右以此计算
整个表达式的结果是最后一个表达式的结果
举例:
5.一些小知识
一:求字符串的长度
先用头文件string.h
再引用库函数strlen
strlen计算的是之前字符的个数。
二:
汉字占两个字节
要打印’怎么做?
printf(“%c”,''');
三:常见关键字(拓展)
最后附上学习代码:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
/*
int main()
{
printf(" **n");
printf(" **n");
printf("************n");
printf("************n");
printf(" * *n");
printf(" * *n");
return 0;
}
*/
int main()
{
printf(" ** n");
printf(" ** n");
printf("************n");
printf("************n");
printf(" * * n");
printf(" * * n");
return 0;
}
#include <stdio.h>
int main()
{
//输入
int x = 0;
int y = 0;
scanf("%d", &x);
//计算
if (x < 0)
y = 1;
else if (x == 0)
y = 0;
else
y = -1;
//输出
printf("%dn", y);
return 0;
}
#include <stdio.h>
int main()
{
int m = 0;
//输入
scanf("%d", &m);
//输出
if (m % 5 == 0)
printf("YESn");
else
printf("NOn");
return 0;
}
#include <stdio.h>
//
//scanf函数在调用失败的时候,读取失败的时候,会返回EOF
//EOF -- end of file
//
int main()
{
//输入
int iq = 0;
while (scanf("%d", &iq) != EOF)
{
if (iq >= 140)
{
printf("Geniusn");
}
}
return 0;
}
#include <stdio.h>
int main()
{
printf("Name Age Gendern");
printf("---------------------n");
printf("Jack 18 mann");
return 0;
}
#include <stdio.h>
int main()
{
int a = 0;
int b = 0;
//输入
scanf("%d %d", &a, &b);
//输出
printf("%d %dn", a / b, a % b);
return 0;
}
#include <stdio.h>
int main()
{
int a = 40;
int c = 212;
//int ret = (-8+22)*a-10+c/2;
printf("%dn", (-8 + 22) * a - 10 + c / 2);
return 0;
}
//void test()
//{
// int b = 0;
//
//}
//
//int main()
//{
// int a = 10;
//
// return 0;
//}
#include <stdio.h>
//int num = 10;
//
//int main()
//{
// int num = 1;
// printf("num = %dn", num);//1
// return 0;
//}
//int main()
//{
// printf("abcdef");
// return 0;
//}
//int main()
//{
// int arr[] = {1,2,3,4,5};
// int a = 0;
//
// return 0;
//}
//#include <stdio.h>
//#include <string.h>
//int main()
//{
// printf("%dn", strlen("c:test121"));
// return 0;
//}
#include <stdio.h>
#include <string.h>
//
//int main()
//{
// char arr[] = { 'b', 'i', 't' };
// printf("%dn", strlen(arr));
// return 0;
//}
//
//
//int get_max(int x, int y)
//{
// if (x > y)
// return x;
// else
// return y;
//}
//
//int main()
//{
// int n1 = 0;
// int n2 = 0;
// //输入
// scanf("%d %d", &n1, &n2);
// //求2个整数的较大值
// int m = get_max(n1, n2);
// //输出
// printf("%dn", m);
//
// return 0;
//}
//
//int main()
//{
// //C语言中,0表示假,非0表示真
// //int flag = 5;
// //if (!flag)
// //{
// // printf("hehen");
// //}
// //int a = -10;
// //int b = +a;
// //printf("%dn", b);
//
// //int a = 10;
// //printf("%dn", sizeof(a));//单位是字节
// //printf("%dn", sizeof(int));
//
//
// //int a = 10;
// //int b = a + 1;
// //int b = ++a;//前置++,先++,后使用//a = a+1; b=a;
// //int b = a++;//后置++,先使用,后++ //int b = a;a=a+1;
//
// //int b = --a;//a=a-1;b=a;
// //int b = a--;//b=a;a=a-1
//
// //printf("a=%d b=%dn", a, b);//9 10
//
// //int a = 1;
// //int b = (++a) + (++a) + (++a);//错误的代码
// //printf("%dn", b);
//
// return 0;
//}
//int main()
//{
// int a = (int)3.14;
// printf("%dn", a);
//
// return 0;
//}
//int main()
//{
// int a = 10;
// if (a >= 10)
// {
// printf("hehen");
// }
// return 0;
//}
//int main()
//{
// int a = 5;
// if (5 = a)
// {
// printf("hehen");
// }
// return 0;
//}
//
//int main()
//{
// int a = 5;
// int b = 5;
// if ((a == 3) || (b == 4))//或者
// {
// printf("hehen");
// }
//
// //if ((a == 3) && (b == 4))//并且
// //{
// // printf("hehen");
// //}
// return 0;
//}
//int main()
//{
// int a = 3;
// int b = 5;
// int m = 0;
//
// if (a > b)
// m = a;
// else
// m = b;
//
// //m = (a > b) ? (a) : (b);
//
// printf("%dn", m);
// return 0;
//}
//调试开始 - f10
//fn+f10
//int main()
//{
// int a = 3;
// int b = 20;
// int c = 0;
// int d = (a -= 3, b += a, c = a - b, b = a - 4);
// printf("d=%dn", d);
// return 0;
//}
//int main()
//{
// int arr[10] = { 0 };
// //0~9
// arr[5] = 9;//[] - 下标引用操作符,他的操作数:数组名,下标
//
// return 0;
//}
//int get_max(int x, int y)
//{
// if (x > y)
// return x;
// else
// return y;
//}
//
//int main()
//{
// int m = get_max(3, 5);//()函数调用操作符,他的操作数是:函数名,3,5
//
// return 0;
//}
//
//
//int main()
//{
// {
// int a = 10;
// //
// }
//
// return 0;
//}
//unsigned int num = 10;
//
//typedef unsigned int uint;
//
//uint num2 = 10;
//
//int main()
//{
// int num = 10;//4个字节
// register int num2 = 20;//建议将20放在寄存器中
//
// return 0;
//}
//static修饰局部变量
//void test()
//{
// static int a = 5;
// a++;
// printf("%d ", a);
//}
//
//int main()
//{
// int i = 0;
// while (i<10)
// {
// test();
// i++;
// }
//
// return 0;
//}