Linux C学习笔记

#include <stdio.h>

int main()
{
	char a[1000];
	int i;
	for(i = 0; i<1000;i++)
	{
		a[i] = -1-i;
	}
	printf("%d\n",strlen(a)) ;
	return 0;    
}

255

a[i]存放的数字是-1到-128,由于计算机是以二进制补码的方式存放的数据,所以又从-128跳转到127
当字符型数组里面存放0时候字符串默认就结束了,故最后的结果就是128+127
strlen:给出字符串中的字符长度
sizeof:以字节为单位给出对象的大小
不同类型的值混合运算

注意:当int转换成char类型的时候,前面二个字节会丢失,因此就没有意义了,而当char转换成int的时候只需要在前面补上二个字节的0就可以了
float会自动转换成double
bit byte
bit:最小的储存单位,0 1
byte:计算机最小的单位一个byte由8个bit构成
#字节序
大端:高字节存放在低地址,低字节存放高地址
小端:高字节存放在高地址,低字节存放在低地址

break与continue的区别
break:结束循环
continue:结束本次循环,不影响下一次的循环
功能:判断100-200之间的素数,并打印出来
/*****************************************************
> File name: 2.c
> Author: Mr.YUAN
> 日期: 2019-01-24 20:49
>功能:判断100-200之间的素数,并打印出来
*****************************************************/

#include <stdio.h>
int main()
{
int i,j;int flag=1;
for(i=101;i<200;i+=2)
{
for(j=2;j<i;j++)
{
if((i%j)0)
{
flag=0;
break;
}
flag=1;
}
if(flag
1)
printf("%d\n",i);
}
return 0;
}

分析:有素数的定义:除了1和他本身以外没有其他的数可以被他整除
打印的范围是100-200
解题思路:方法一:可以用一重循环从100到200,再单独写一个模块判断是否是素数
方法二:用一重循环从100到200,二重循环从2跑到i;在二重循环里面写一个if判断语句,如i%j==0则FLAG=0证明不是素数,如果没有进入这个IF判断语句则证明i是素数

求最大公约数和最小公倍数
/*****************************************************
> File name: 3.c
> Author: Mr.miao
> 日期: 2019-01-24 21:09
>求最大公约数和最小公倍数
*****************************************************/

#include <stdio.h>

int main()
{
int a,b;
int i,j=0;
int divisor,multiple;
printf(“请输入二个整数:”);
scanf("%d %d",&a,&b);
if(a>b)
{
a^=b;
b^=a;
a^=b;
}
for(i=2;i<=a;i++)
{
if(a%i0 && b%i0)
{
divisor=i;
}
else divisor=1;
}
for(i=b;j0;i++)
{
if(i%a
0 && i%b==0)
{
multiple=i;
j=1;
}
}
printf(“divisor is %d\n”,divisor);
printf(“multiple is %d\n”,multiple);

return 0;

}

遇到的问题:
在使用scanf时候,第二个参数没有打&符号,提示的错误:The variable ‘a’ is being used without being initinaalized 变量a没有初始化
逆序输出三位整数
/*****************************************************
> File name: 3.c
> Author: Mr.miao
> 日期: 2019-01-24 21:09
>逆序输出三位整数
*****************************************************/

#include <stdio.h>

int main()
{
int abc,cba;
int bai,shi,ge;
printf(“please enter a three-digit interge:\n”);
scanf("%d",&abc);
bai=abc/100;
shi=abc%100/10;
ge=abc%10;
cba=ge100+shi10+bai;
printf(“逆序输出的三位数是:%d\n”,cba);
return 0;
}

解决思路:先得到百位十位和个位,再得到新的数

求1-100的和
/*****************************************************
> File name: 3.c
> Author: Mr.miao
> 日期: 2019-01-24 21:09
>1-100的和
*****************************************************/

#include <stdio.h>

int main()
{
int i,s=0;
printf(“1-100之间的和\n”);
for (i=1;i<=100;i++)
{
s+=i;
}
printf(“1-100之间的和是:%d\n”,s);

return 0;

}

200-300之间不能被三整除的数,五个一行输出
/*****************************************************
> File name: 3.c
> Author: Mr.miao
> 日期: 2019-01-24 21:09
>200-300之间不能被三整除的数,五个一行输出
*****************************************************/

#include <stdio.h>

int main()
{
int i,count=0;
for (i=200;i<=300;i++)
{
if (i%3!=0)
{
count++;
printf("%d “,i);
if (count==5)
{
count=0;
printf(”\n");
}

	}
	
}

return 0;

}

解决思路:用一个for循环,里面嵌套一个if判断语句,再定义一个count,控制五个一行的输出
1-n有多少个9设N最大为3位数
/*****************************************************
> File name: 3.c
> Author: Mr.miao
> 日期: 2019-01-24 21:09
>1-n有多少个9设N最大为3位数
*****************************************************/

#include <stdio.h>

int main()
{
int n;
int i,count=0;
int bai,shi,ge;
printf(“请输入一个1-999之间的数:”);
scanf("%d",&n);
for (i=1;i<=n;i++)
{
if (i<10)
{
if (9==i)
{
count++;
}

	} 
	else if(i>=10 && i<=99)
	{
		shi=i/10;
		ge=i%10;
		if (9==shi)count++;
		if (9==ge)count++;
	}
	else
	{
		bai=i/100;
		shi=i/10;
		ge=i%10;
		if (9==bai)count++;
		if (9==shi)count++;
		if (9==ge)count++;
	}
	
}
printf("%d\n",count);



return 0;

}
修改后的代码:

/*****************************************************
    > File name: 3.c
    > Author: Mr.miao
    > 日期: 2019-01-24 21:09
    >1-n有多少个9设N最大为3位数
*****************************************************/

#include <stdio.h>

int main()
{
	int n1,n2,n3;
	int i,count=0;
	printf("请输入一个数\n");
	scanf("%d",&n1);
	for (i=1;i<=n1;i++)
	{
		n2=i;
		while(n2>0)
		{
			n3=n2%10;
			n2=n2/10;
			if(n3==9) count++;
		}
	}
	printf("%d\n",count);
    return 0;
}

解决思路:
假设N是一个0-999的数,用if else语句分成N是一位数,N是二位数和N是三位数,用count计数

有n个人围成一圈,顺序排号,从第一个开始报数(从1到3报数),凡报到3的人退出圈子,问最后最后留下的是原来第几号的那位.
/*****************************************************
> File name: 3.c
> Author: Mr.miao
> 日期: 2019-01-24 21:09
>有n个人围成一圈,顺序排号,从第一个开始报数(从1到3报数),凡报到3的人退出圈子,问最后最后留下的是原来第几号的那位.
*****************************************************/

#include <stdio.h>

int main()
{
int people;
int k, i,j=-1;
int a[1000]={0}; //0 存在 1退出
printf(“please enter how many people range 0 to 1000:”);
scanf("%d",&people);
for(k=0;k<people-1;k++)
{
for (i=1;i<=3;i++)
{
j++;
if(j>=people)j=0;
if (a[j]1)i–;
if(i
3)
{
a[j]=1;
printf(“退出的是%d号\n”,j+1);
}
}
}

for (k=0;k<people;k++)
{
	if(a[k]==0)
	printf("最后存在的是%d号\n",k+1);
}
return 0;

}

解决思路:
用数组下表代表第几个人,数据存放0 1 代表是否出局,一重循环确定每次出局1个人,循环people-1次则循环完成还剩下一个人,二重循环记录3次后谁出局

输入一个整数a,再输入两个整数p1,p2(p1,p2<32),输出该整数的二进制表示方法中从右端开始的p1到p2位.
/*****************************************************
> File name: 3.c
> Author: Mr.miao
> 日期: 2019-01-24 21:09
>输入一个整数a,再输入两个整数p1,p2(p1,p2<32),输出该整数的二进制表示方法中从右端开始的p1到p2位.
*****************************************************/

#include <stdio.h>
int main()
{
int a,p1,p2,i;
int b;
printf(“please enter a ingeter\n”);
scanf("%d",&a);
printf(“please enter two ingeters p1and p2(p1<p2)\n”);
scanf("%d%d",&p1,&p2);
for (i=0;i<=(p2-p1);i++)
{
b=(a>>(p1-i-1));
b=b&1;
printf("%d ",b);
}
return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值