gpt4 book ai didi

c - 并非每个单元格都已填充时打印数组

转载 作者:太空宇宙 更新时间:2023-11-04 04:44:59 26 4
gpt4 key购买 nike

我试图用至少 12 个 double 值填充一个数组,然后在数组中打印 double 值。如果我恰好使用 12 个 double ,这很好用,但如果我使用少于 12 个 double ,程序将不会继续,直到我输入 12。代码如下:

#include<stdio.h>
#include<string>
int main(){
double arr[12];
printf("Enter Numbers\n");
for(int i=0;i<12;i++){
scanf_s("%lf",&arr[i]);
}
for(int i=0;i<12;i++){
printf("%f\n",arr[i]);
}
return 0;
}

我是否可以做一个简单的更改,以便如果我输入例如数字 1 13 52 或数字 8 99 11 45 82,它会将它们打印回给我?我不担心超过 12 个,也不关心阵列中浪费的存储单元。

最佳答案

为此,您必须有一些退出条件。例如,您可以在输入负数时停止

int n = 12;
for(int i=0;i<12;i++){
scanf_s("%lf",&arr[i]);
if (arr[i] < 0) {
n = i;
break;
}
}

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

或者其他一些条件,比如输入零或一些大的负数。

更新:

如果想在没有号码时停止,可以查看scanf_s的返回值正如@leeduhem 所建议的那样

int n = 12;
for(int i=0;i<12;i++){
int rc = scanf_s("%lf",&arr[i]);
if (rc == 0 || rc == EOF) {
n = i;
break;
}
}

关于c - 并非每个单元格都已填充时打印数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22121054/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com