学习笔记03

----------20150812----------------
1.定义一个数组a[100][100]后,最好在一个函数中不要定义int a,此时会发生地址冲突,编译器会认为a和数组的地址有关系,寻址会发生错误。
2.对于多个整数输入,比如scanf("%d",&a[i]);输入一个数字后,按一个空格,才算一个数,如果不按空格,比如输入111,其实是输入了一个数字,空格是程序响应的标志。


----------20150814----------------
1. 输入一个大的数字,用字符数组保存,0结束输入,怎么实现呢?
while (scanf ("%s",input)!=EOF && input[0]!='0')
2. 注意,在表达式运算中,float类型运算不自动转化成double类型,这以之前定义不同,这样做是为了节省存储空间和计算时间。
3. 算法太重要了,比如problem 2039,好的算法两行代码就解决了问题。
4.如果输入两个数都是0就中止,怎么写输入呢?
问题转化:A等于0并且B也等于0,就中止输入
可以写成逻辑表达式:A == 0 && B == 0
那么什么时候一直进行输入呢?
那就是(A == 0)&&(B == 0)的非
从而得出 (A != 0) || (B != 0)
程序语句如下:
while(scanf("%d %d",&A,&B),(A != 0)|| (B != 0))
{
语句;

方法二:
while(scanf("%d %d",&A,&B))
{
if(!(A + B))
return 0;//如果都是0就退出循环
语句;

5.gets()用来输入一个字符串,需要#include<string.h>头文件,另外需要提前定义一个数组a[LEN],来接收这个字符串。比如我们定义a[100];然后用get(a)来接收终端输入的字符串,用一个for循环就可以对字符串中的每个字符进行判断和操作。

eg1:

                gets(a);
for(j=0;j<strlen(a);j++)
{
if(a[j]>='A'&&a[j]<='Z')
{
map[a[j]]++;
if(max<map[a[j]])
{
max=map[a[j]];/*统计出字母个数最大数*/
}
}
}

eg2:

char cipher[500];

while (gets(cipher))
{
if (strcmp("START",cipher) == 0) 
{
;
}
else if (strcmp("END",cipher) == 0)
{
;
}
else if (strcmp("ENDOFINPUT",cipher) == 0)
{
return 0;
}

else

               {

//语句;
}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值