# 一、PTA实验作业

## 题目1.7-2统计一行文本的单词个数

### 2.设计思路

 * 定义数组c[100000],i,n.count
* 输入字符串gets(c);
* for (i = 0; i < strlen(c)&&c[i]!='.'; i++) {//当i小于数组长度并且c[i]不等于.时进入循环
while(c[i] != ' ') {//当c[i]不等于空格时进入
n++;
i++;
}
if (n) count++;//先判断单词
if(c[i]==' ') n = 0;//初始化
}
printf("%d\n", count);.//输出单词数



## 题目2.7-4查验身份证

### 2.设计思路

 1.定义i,j作为循环变量,n为身份证号码个数,flag[100]为判断身份证号是否正确,count为出错身份证号个数,sum[100]为加权和,char型a[101][19]储存身份证号
2.输入n
3.for (i = 0; i < n; i++)
输入身份证号
4.for (i = 0; i < n; i++)//判断前17位是否全为数字
for (j = 0; j < 17; j++)
if (a[i][j] > '9' || a[i][j] < '0') {
flag[i]变为1表示出错
count+1
跳出循环
}
5.	for (i = 0; i < n; i++)//根据题目要求来求出没个身份证号前17位的加权和
for (j = 0; j < 17; j++)
if (flag[i] != 1) {
switch (j%10)
{
case 0:sum[i] += 7 * (a[i][j] - '0'); break;
case 1:sum[i] += 9 * (a[i][j] - '0'); break;
case 2:sum[i] += 10 * (a[i][j] - '0');break;
case 3:sum[i] += 5 * (a[i][j] - '0'); break;
case 4:sum[i] += 8 * (a[i][j] - '0'); break;
case 5:sum[i] += 4 * (a[i][j] - '0'); break;
case 6:sum[i] += 2 * (a[i][j] - '0'); break;
case 7:sum[i] += 1 * (a[i][j] - '0'); break;
case 8:sum[i] += 6 * (a[i][j] - '0'); break;
case 9:sum[i] += 3 * (a[i][j] - '0'); break;
}
}
6.for(i=0;i<n;i++)//判断校验码是否相等
switch (sum[i]%11)
{
case 0:if (a[i][17] != '1'){flag[i] = 1; count++;} break;
case 1:if (a[i][17] != '0'){flag[i] = 1; count++;} break;
case 2:if (a[i][17] != 'X'){flag[i] = 1; count++;} break;
case 3:if (a[i][17] != '9'){flag[i] = 1; count++;}break;
case 4:if (a[i][17] != '8'){flag[i] = 1; count++;} break;
case 5:if (a[i][17] != '7'){flag[i] = 1; count++;} break;
case 6:if (a[i][17] != '6'){flag[i] = 1; count++;} break;
case 7:if (a[i][17] != '5'){flag[i] = 1; count++;} break;
case 8:if (a[i][17] != '4'){flag[i] = 1; count++;} break;
case 9:if (a[i][17] != '3'){flag[i] = 1; count++;} break;
case 10:if (a[i][17] != '2'){flag[i] = 1; count++;} break;
}
7.for (i = 0; i < n; i++)
如果flag[i]=1,输出身份证号
8.如果count=0,代表没有身份证号出错,输出All passed


## 题目3.7-5统计大写辅音字母

### 2.设计思路

 1.定义数组ch[81]用来存放字符串,i做循环变量,count做计数器
2.	while ((ch[i]=getchar())!='\n') i+1 输入字符串
3.ch[i]='\0';
4.	for(i=0;i<strlen(ch);i++)
如果字符在A-Z之间,并且不是A E I O U五个字符,count+1
5.输出大写辅音字母个数


# 四、本周学习总结

## 1.你学会了什么

### 1.1指针变量如何定义（设计代码可以用markdown代码符号渲染）？

int,float, char等。

### 1.5

posted @ 2017-12-10 19:42  网络1611张弛  阅读(164)  评论(2编辑  收藏  举报