【发布时间】:2022-01-22 02:25:47
【问题描述】:
i 的值在达到 7 后重置
#include <stdio.h>
int main(){
char marks[10];
int i;
printf("enter the numbers:\n");
printf("-------------------\n");
for (i=0;i<10;i++)
{
printf("%d\n",i);
printf("element %d-",i);
scanf("%d", &marks[i]);
}
printf("\n all %d",marks);
printf("\n second %d\n",marks[1]);
return 0;
}
【问题讨论】:
-
请不要显示文字图片。将输出复制并粘贴到您的问题中作为文本,并将其格式化为单独的代码块。为此,您可以edit您的问题。请同时显示输入。
-
scanf("%d", &marks[i]);调用 未定义的行为,因为您告诉scanf期待int*,但传递的是char* -
您的编译器没有发出任何警告吗?
-
您正试图将
int读入char变量,这是未定义的行为。您还可以使用%d打印marks,这只会以某种不可用的形式打印其地址(或其中的一部分),而不是内容。 -
您希望
printf("\n all %d",marks);做什么?格式说明符%d需要int类型的值,但您传递了一个char数组,它是指向第一个数组元素的指针。