C语言/C++常见习题问答集锦(四十) 之分门别类
程序之美
1、编写一个count函数,统计下输入的字符串中"."(句号)的个数,并进行输出。
int count(char* p){
int m = 0;
while(*p){
if (*p == '.')
{
m ++;
}
p ++;
}
return m;
}
#include<stdio.h>
int main(){
int a[100],i;
gets(a);
i = count(a);
printf("句号的个数为:%d\n", i);
getchar();
getchar();
return 0;
}
2、C语言
输入格式:
两行,第一行给出一个整数N(1<=N<=100),随后N行,每行给出一个长度为5的字符串(仅包含Y和N,分别代表5个题目小明是否通过),Y代表本题通过,N代表本题未通过。
输出格式:
可以拿到奶茶输出“YES”,否则输出“NO”(输出不含双引号)。
输入样例:
3
NNNYN
NNYYY
YYYNN
结尾无空行
输出样例:
NO
YES
YES
结尾无空行
#include<stdio.h>
#include<stdlib.h>
int main()
{
int n, i, j, k, m, *p;
char sn[5];
printf("请输入个数:\n");
scanf("%d",&n);
if (n<=0)
{
return -1;
}
j = 0;
m = n;
p = (int *)malloc(sizeof(int) * n);
while (n--)
{
scanf("%s", sn);
k = 0;
for(i = 0; i < 5; i++)
{
if (sn[i] == 'Y')
{
k ++;
if (k >= 3)
{
p[j++] = 1;
break;
}
}
}
}
for ( i = 0; i < m; i++)
{
if (p[i] == 1)
{
printf("YES\n");
}
else{
printf("NO\n");
}
}
return 0;
}
运行结果为:
3、输出多行字符数组中的数字字符个数
#include<stdio.h>
#include<string.h>
int main(void)
{
int n,i,k,j;
scanf("%d",&n); //字符串个数
char str[100][512];
for(i=0;i<n;i++){
scanf("%s",str[i]);
} //使用二维数组得到多组字符串
for(i=0;i<n;i++){
k=0; //对每行的数字个数都先初始化为0
for(j=0;str[i][j]!='\n';j++){ //注意循环结束条件
if(str[i][j]>='0'&&str[i][j]<='9'){
k++; //统计每一行数字字符个数
}
} printf("%d\n",k); //输出每行数字字符个数 (在第二层循环中)
}
/*********End**********/
return 0;
}