C语言问题假设10个整数存储在数组a中,要求把其中能被12整除的数标记为T,其他标记为F。

假设10个整数存储在数组a中,要求把其中能被12整除的数标记为T,其他标记为F。标记存储在字符数组b中下标相同的对应位置,实现以上功能,并输出数组b。刚学,我这什么毛病,... 假设10个整数存储在数组a中,要求把其中能被12整除的数标记为T,其他标记为F。标记存储在字符数组b中下标相同的对应位置,实现以上功能,并输出数组b。刚学,我这什么毛病,谢谢大佬 展开
 我来答
萧寒
2018-12-21 · 知道合伙人IT服务行家
萧寒
知道合伙人IT服务行家
采纳数:23 获赞数:347
软件设计师,中职学校计算机教研室教研组长。

向TA提问 私信TA
展开全部

gets()一般用于字符和字符串的输入,而不是整数。

代码:

nclude <stdio.h>
int main()
{
    int a[10]={12,12,14,15,16,12,24,22,60,61};
    char b[10]={'F'};
    int i;
    // 原数组输出 
for(i=0;i<10;i++){
printf("%d ",a[i]);
}
printf("\n");
// 处理 
for(i=0;i<10;i++){
if(a[i]%12==0){
b[i]='T';
}else{
b[i]='F';
}
}
// 结果输出 
for(i=0;i<10;i++){
printf("%c ",b[i]);
}
return 0;
}

运行:

要使结果对齐,更直观,可以将空格换成/t(制表符):

代码:

#include <stdio.h>
int main()
{
    int a[10]={12,12,14,15,16,12,24,22,60,61}; // 数组 
    char b[10]={'F'}; // 保存结果 
    int i;
    // 原数组输出 
for(i=0;i<10;i++){
printf("%d\t",a[i]);
}
printf("\n");
// 处理 
for(i=0;i<10;i++){
if(a[i]%12==0){
b[i]='T';
}else{
b[i]='F';
}
}
// 结果输出 
for(i=0;i<10;i++){
printf("%c\t",b[i]);
}
return 0;
}

运行:

更多追问追答
追问

大佬你的代码是没毛病,但是我是要自己输入的数组,那个是我的举例,能不能帮我看看我的这段为什么不对

追答
不能用gets,它是用来输入字符串的
春秋战甲
2018-12-21 · TA获得超过280个赞
知道小有建树答主
回答量:216
采纳率:74%
帮助的人:90万
展开全部
你都不放源代码,我怎么帮你?
追问

这不是吗,我放了两张图的

追答
好吧,是我的锅,我没看见。。。
恩,问题在于你是以字符串形式输入的,根据你数组设定大小,只有九个字符能保存进去,也就是说,你的字符串的内容('_'代表空格)"12_12_14_"再加上一个空字符。'1'的ascii码为49,'2'的是50,'4'的是52,空格为32,都不能被12整除。
在这里你犯了一个概念性的错误,你可能以为你是在存储10个整数进去,但这里的数组类型是字符不是整形数。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式