输入 第一行输入一个整数n(1 <= n <= 100)表示测试样例个数 接下来n行,一 10

输入第一行输入一个整数n(1<=n<=100)表示测试样例个数接下来n行,一个字符串(大小不超过20),保证字符串不包含除小写字母外的任何其他字符输出对于每个单词输出a或... 输入
第一行输入一个整数n(1 <= n <= 100)表示测试样例个数
接下来n行,一个字符串(大小不超过20),保证字符串不包含除小写字母外的任何其他字符
输出
对于每个单词输出a或者an,每个a或者an单独占一行,表示应该使用的不定冠词
展开
 我来答
问明6E
高粉答主

2019-05-20 · 每个回答都超有意思的
知道答主
回答量:279
采纳率:100%
帮助的人:12.9万
展开全部

#include

#include

#include

#define STRLEN 100

void ifree(char**p,int i);

int CheckAndChange(char*p);

int main()

{

int T;/*样例个数*/

int i;/*循环参数*/

char**p=NULL;/*指针p指向的内存空间存放指向各个字符串的指针*/

scanf("%d\n",&T);/*读取T*/

if((p=malloc(T*sizeof(char*)))==NULL)

{

printf("malloc p fail!\n");

return-1;

}

for(i=0;i&lt;T;i++)

{

if((*(p+i)=malloc((STRLEN+1)*sizeof(char)))==NULL)

{

printf("malloc p+%d fail!\n",i);

ifree(p,i);/*释放之前分配的空间*/

free(p);/*释放p*/

return-1;

}

gets(*(p+i));

}

for(i=0;i&lt;T;i++)

{

if(CheckAndChange(*(p+i))&gt;0)/*判断是否都是大写字符,如果是,则变成小写*/

{

printf("%s\n",*(p+i));

}

else

{

printf("string%d contains incorrect character!\n",i+1);

}

}

ifree(p,T);

free(p);

return 0;

}

void ifree(char**p,int i)

{

int j;

for(j=0;j&lt;i;j++)

{

free(*(p+j));

}

}

int CheckAndChange(char p)

{

int i;

for(i=0;i&lt;strlen(p);i++)

{

if(((p+i)&gt;='A')&&(*(p+i)&lt;='Z'))

{

*(p+i)+='a'-'A';

}

else

{

return-1;

}

}

return 1;

}

扩展资料:

return是C++的关键字,它提供了终止函数执行的一种方式。当return语句提供了一个值时,这个值就成为函数的返回值.

说到return,有必要提及主函数的定义,下面是从网络上找到的资料,好好消化吧,对了解主函数中返回值的理解有很大的帮助.

很多人甚至市面上的一些书籍,都使用了void main(),其实这是错误的。C/C++中从来没有定义过void main()。C++之父Bjarne Stroustrup

在他的主页上的FAQ中明确地写着The definition void main(){/*...*/}is not and never has been C++,nor has it even been C.(void main()从来就不存在于C++或者C)。

1.C

在C89中,main()是可以接受的。Brian W.Kernighan和Dennis M.Ritchie的经典巨著The C programming Language 2e(《C程序设计语言第二版》)用的就是main()。不过在最新的C99标准中,只有以下两种定义方式是正确的:

int main(void)

int main(int argc,char*argv[])

(参考资料:ISO/IEC 9899:1999(E)Programming languages—C 5.1.2.2.1 Program startup)

当然,我们也可以做一点小小的改动。例如:char*argv[]可以写成char**argv;argv和argc可以改成别的变量名(如intval和charval),不过一定要符合变量的命名规则。

如果不需要从命令行中获取参数,请用int main(void);否则请用int main(int argc,char*argv[])。

main函数的返回值类型必须是int,这样返回值才能传递给程序的激活者(如操作系统)。

如果main函数的最后没有写return语句的话,C99规定编译器要自动在生成的目标文件中(如exe文件)加入return 0;,表示程序正常退出。不过,我还是建议你最好在main函数的最后加上return语句,虽然没有这个必要,但这是一个好的习惯。

注意,vc6不会在目标文件中加入return 0;,大概是因为vc6是98年的产品,所以才不支持这个特性。现在明白我为什么建议你最好加上return语句了吧!不过,gcc3.2(Linux下的C编译器)会在生成的目标文件中加入return 0;。

参考资料:

百度百科——return(C语言语句)

百度网友f5bb530
2018-12-29
知道答主
回答量:4
采纳率:0%
帮助的人:3104
展开全部

你看这样满意不

2018.12.29更改过一次。。。。。

#include <cstdio>
#include <cstdlib>

int main(int argc, char const *argv[])
{
    char ch[25]; // 不超过20
    int n;
    
    scanf("%d", &n);
    getchar(); // 吃空格符
    
    while(n--){
        gets(ch);
        if(ch[0]=='a' || ch[0]=='e' || ch[0]=='i' || ch[0]=='o' || ch[0]=='u'){
            printf("an\n");
        }else{
            printf("a\n");    
        }
    }
    
    // system("pause");   
    return 0;
}

/*
在devc++中的运行结果为
3
apple
you
fucker
an
a
a
*/
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
White_MouseYBZ
2016-12-03 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6608万
展开全部
这题有点问题:不定冠词用a或an并不单是由单词的第一个字母是元音还是辅音决定,不发音的h开头的单词前也要用an。那么这种情况怎么处理,题目有没有明确要求?
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
沧海雄风2009
推荐于2018-02-27 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8525
采纳率:79%
帮助的人:2836万
展开全部
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>


int main( )
{
char **a=NULL;
int n=0,i=0;
scanf("%d",&n);
a = (char **)malloc(sizeof(char*)*n);
fflush(stdin);
for (i=0;i<n;i++)
{
a[i] = (char*)malloc(sizeof(char)*20);
gets(a[i]);
}
for (i=0;i<n;i++)
{
if (a[i][0]=='a' ||a[i][0]=='e' || a[i][0]=='i' || a[i][0]=='o' || a[i][0]=='u' )
{
printf("an\n");
}else
{
printf("a\n");
}
}
return 0 ;
}
3
earth
apple
dog
an
an
a
Press any key to continue
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
花花兔子o
2021-05-13
知道答主
回答量:5
采纳率:0%
帮助的人:2310
展开全部
char **a=NULL; int n=0,i=0; scanf("%d",&n); a = (char **)malloc(sizeof(char*)*n); fflush(stdin); for (i=0;i<n;i++) { a[i] = (char*)malloc(sizeof(char)*20); gets(a[i]); } for (i=0;i<n;i++) { if (a[i][0]=='a' ||a[i][0]=='e' || a[i][0]=='i' || a[i][0]=='o' || a[i][0]=='u' ) { printf("an\n"); }else { printf("a\n"); } }
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式