关于c语言数组问题
假设10个整数存储在数组a中,要求把其中能被12整数的数标记为t,其他标记为f,标记存储在字符数组b中下标相同的对应位置。试 编写程序,实现以上功能,并输出两个数组。下面是本人写的,错的不清不楚,希望有大佬教
#include"stdio.h"
main()
{
int a;
char str;
int n,m;
printf("请输入十个整数:");
for(n=0;n<10;n++)
{
scanf("%d",&a);//赋值
}
for(n=0;n<10;n++)
{
if(a%12==0)
{
a=116;
scanf("%c",&str);
}
else
{
a=102;
scanf("%c",&str);//筛选
}
}
for(m=0;m<10;m++)
{
printf("a[%d]=%d\n",m,a);
}
for(m=0;str!='\0';m++)
{
printf("%c",str);//输出
}
return 0;
}
if(a%12==0)
{
a=116;
scanf("%c",&str);
}
else
{
a=102;
scanf("%c",&str);//筛选
}
没懂你为什么要这么写,这样你是把a赋值成‘t’和'f',然后又从输入流里读c..
if (a % 12 == 0){
str='t';
}
else
{
str='f';
}
不就行了 #include<stdio.h>
void main(){
int a;
char str;
int n,m,i;
printf("请输入十个整数:\n");
for(n=0;n<10;n++)
{
scanf("%d",&a);//赋值
};
for( i=0;i<10;i++)
{
if(a%12==0){
str='t';
}else{
str='f';
}
}
for( m = 0;m<10;m++){
printf("a[%d]=%d\n",m,a);
printf("b[%d]=%c\n",m,str);
}
}
你的要求不是把能被整除的数组下标的内容变成t吗,那为什么要自己再输入一次呢?
我也不太明白a=102和a=116的做法
你看我的代码实现对不对 Croper 发表于 2019-2-27 20:22
没懂你为什么要这么写,这样你是把a赋值成‘t’和'f',然后又从输入流里读c..
不就行了
#include"stdio.h"
main()
{
int a;
char str;
int n,m;
printf("请输入十个整数:");
for(n=0;n<10;n++)
{
scanf("%d",&a);//赋值
}
for(m=0;m<10;m++)
{
printf("a[%d]=%d\n",m,a);//输出a
}
for(n=0;n<10;n++)
{
if(a%12==0)
{
str='t';
}
else
{
str='f';
}
}
for(m=0;str!='\0';m++)
{
printf("%c",str);//输出str
}
}
还是不行 for(m=0;str!='\0';m++)
{
printf("%c",str);//输出str
}
str 改str,
话说一个n就够了,为什么还要一个m一个n。。 暗pluto 发表于 2019-2-27 20:35
解决了,非常感谢
#include"stdio.h"
main()
{
int a;
char str;
int n,m;
printf("请输入十个整数:");
for(m=0;m<10;m++)
{
scanf("%d",&a);
}
for(m=0;m<10;m++)
{
if(a%12==0)
{
str='t';
}
else
{
str='f';
}
}
for(m=0;m<10;m++)
{
printf("a[%d]=%d\n",m,a);//输出a
}
for(m=0;m<10;m++)
{
printf("str[%d]=%c\n",m,str);//输出str
}
}
页:
[1]