寒假,C,自己遇到的问题,留作纪念(二)
作者:互联网
https://www.runoob.com/cprogramming/c-100-examples.html
寒假解决菜鸟课程的C语言经典100例,顺便督促学习,留作纪念
自己就是简单在菜鸟课程学习的,利用寒假把这100道例题解决掉。
实例51-53:&,|,^,~;
0 & 0 = 0; 0 & 1 = 0 ; 1 & 0 = 0 ; 1 & 1 = 1;
0 | 0 = 0 ; 0 | 1 = 1 ; 1 | 0 = 1 ; 1 | 1 = 1;
0 ^ 0 = 0 ; 0 ^ 1 = 1; 1 ^ 0 = 1; 1 ^ 1 = 0.
~ 0 = 1 ; ~ 1 = 0 ;
实例61: 二维数组;
//杨辉三角形
int a[N][N];
for (size_t i = 0; i < N; i++)
{
a[i][0] = 1;
a[i][i] = 1;
}
for (size_t i = 2; i < N; i++)
{
for (size_t j = 1; j < i; j++)
{
a[i][j] = a[i-1][j-1] + a[i-1][j];
}
}
for (size_t i = 0; i < N; i++)
{
for (size_t j = 0; j <= i; j++)
{
printf("%5d",a[i][j]);
}
printf("\n");
}
实例66:指针运用;
void swap(int *s1, int *s2)
{
int temp;
temp = *s1;
*s1 = *s2;
*s2 = temp;
}
int main (void)
{ int a, b;
int *p1, *p2;
printf("请输入两个数:");
scanf("%d %d",&a,&b);
p1 = &a; p2 = &b;
if (a > b)
{
swap(p1,p2);
}
printf("更改后顺序为:%d,%d\n",a,b);
}
实例68:调试;
F9设置断点->F5(开始调试(运行至断点处))->F11(逐语句(遇到函数则进入函数))
shift+F5 结束调试
shift+F11 退出函数
实例68:size_t 与int 的区别:
这里我犯了很多难以发现的错误,经别人帮助,才有所发现,size_t与int的核心区别:
1)size_t 是 根据32/64位机器而变化的,在64位上是 unsigned long int,也就是不能出现负数;
2)在实际情况下,出现 size_t 0 < -1,这主要是因为int型的-1会转变成无符号型,变成一个很大的数,从而大于0
总的来说,少用size_t就行了
参考:https://blog.csdn.net/lemoncyb/article/details/12012987
https://blog.csdn.net/C1550153993/article/details/91548889
实例68:for循环顺序;
for(1;2;3)
{
4
}
循环过程:1→2→4→3→2→4→3→2→4.....
关于3过程的i--描述:i--的确是先引用后计算,这里在for循环中,可以发现,这里是直接利用i--的值来做判断的,也就是说在for循环中,i--和--i并没有区别
实例79:sizeof str1/sizeof str1[0] & gets函数 & fgets函数 & strcmp函数 & strcpy函数 & strcat函数 & puts函数 & strstr函数
sizeof str1/sizeof str1[0]:计算str1的字符串数
gets函数:printf("请输入一个8进制数:\n");gets(s);将输入的量存储在字符串s中;
fgets函数:fgets(str1,(sizeof str1/sizeof str1[0]),stdin),将输入的量储存在字符串str1中;相比gets函数能控制大小;
strcmp函数:strcmp(str1,str2) ;比较str1与str2的大小,以ASCII 码表上的顺序来决定;
strcpy函数:strcpy(tem,str1);将str1字符串复制到tem字符串;
strcat函数:strcat(a,b);将字符串b复制到字符串a尾部;
puts()函数;puts(s);将字符串s内容输出到屏幕;
strstr()函数:返回字符串中首次出现子串的地址;
实例91:获取时间;
time_t rawtime;
struct tm * timeinfo;
time ( &rawtime );
timeinfo = localtime ( &rawtime );
printf ( "当前本地时间为: %s", asctime (timeinfo) );
实例92:判断程序运行时间;
time_t start,end;
int i;
start=time(NULL);
for(i=0;i<300000;i++)
{
printf("\n"); // 返回两个time_t型变量之间的时间间隔
}
end=time(NULL);
// 输出执行时间
printf("时间间隔为 %6.3f\n",difftime(end,start));
实例94:srand( (time(NULL) ) & rand()%100;
srand( (time(NULL) ) ; 表示设置一个随机种子,每次运行都能保证随机种子不同。
rand()%100;表示获得一个100以内的随机数,其结果在[0-99]中
实例97:文件创建、写入、保存处理;
//从键盘输入一个字符串,将小写字母全部转换成大写字母,然后输出到一个磁盘文件"test"中保存。
FILE *fp; //先赋初值,让文件指针指向空
char in;
fp = fopen("test.txt","w"); //创建写入空文件
printf("请输入一个字符串(以!结束):\n");
while((in=getchar()) != '!')
{
if(in <='z' && in >= 'a')
{
in -= 32;
}
//fprintf(fp,"%c",in); //写入的另一种写法
fputc(in,fp); //把in内容写入fp文件中
}
fclose(fp);
实例98:ASCII码表
65~90为26个大写英文字母,97~122号为26个小写英文字母
参考:https://blog.csdn.net/ttmice/article/details/50978054
hilbert-wy 发布了2 篇原创文章 · 获赞 0 · 访问量 16 私信 关注标签:函数,实例,遇到,int,纪念,str1,寒假,字符串,size 来源: https://blog.csdn.net/qq_40249864/article/details/104116835