C语言 编写一个程序,用$替换数组中的所有偶数,并打印该数组

oogrdqng  于 2023-02-07  发布在  其他
关注(0)|答案(3)|浏览(174)

这是我的密码,但没用

#include <stdio.h>
#include <stdlib.h>

int main(void) {
    int size, i;

    setbuf(stdout,NULL);
    printf("Enter array limit: ");
    scanf("%d",&size);
    printf("Enter values: ");

    int arr[size];

    for(i=0;i<size;i++){
        scanf("%d",&arr[i]);
        if(arr[i]%2==0){
            arr[i]='$';
        }
    }

    for(i=0;i<size;i++){
        printf("%d\n",arr[i]);
    }
    return 0;
}

结果是:

36
3
36
1
ffscu2ro

ffscu2ro1#

就在这个for循环中

for(i=0;i<size;i++){
    printf("%d\n",arr[i]);
}

使用转换说明符%c输出存储字符常量'$'的元素。

for ( i = 0; i < size; i++ ) {
    printf( arr[i] == '$' ? "%c\n", "%d\n", arr[i]);
}

这是一个演示程序。

#include <stdio.h>

int main( void )
{
    enum { N = 10 };
    int arr[N] = { '$', 1, '$', 3, '$', 5, '$', 7, '$', 9 };

    for (int i = 0; i < N; i++)
    {
        printf( arr[i] == '$' ? "%c\n" : "%d\n", arr[i] );
    }
}

程序输出为

1
$
3
$
5
$
7
$
9

或将数组的元素输出为

$ 1 $ 3 $ 5 $ 7 $ 9

可以使用以下for循环

for (int i = 0; i < N; i++)
{
    printf( arr[i] == '$' ? "%c " : "%d ", arr[i] );
}
putchar( '\n' );
wkftcu5l

wkftcu5l2#

您将用美元字符的ASCII代码替换数字。您可以执行以下两项操作之一:
保留数组,在打印的地方添加if语句,如果是偶数,打印数字,否则打印$
创建一个char* 数组。如果数组中的每个元素分配20个字符。使用sprintf打印每个元素中的数字或$。循环并打印新数组中的每个元素。
无论如何,你不能把'$'存储在int数组中,然后确定它是一个字符,它只是一个数字。

dluptydi

dluptydi3#

看问题是你想打印'$'来代替偶数号,但是唯一的问题是整数值仍然存在,数组中没有变化。
如果我说你写的代码显示了36,因为它是$的ASCII值,因为数组是整型,所以它打印了36来代替它。
但是我们可以存储它并使代码打印'$'。但是之后您必须使用%c格式说明符来打印它。

相关问题