【发布时间】:2016-04-24 08:35:09
【问题描述】:
我的代码有问题。它应该从数组中的用户数量中获取,并且用户应该在 1-100 范围内写入他想要的数字。
程序还应该显示最小和最大的数字。如果我想要一个包含 7 个以上数字的数组,当我输入数字时它会崩溃。
每次遇到数字 7 时,程序都会崩溃。我不知道为什么它不起作用。
#include <stdio.h>
#include <stdlib.h>
int n, i, a;
int main ()
{
int tab[n];
printf("\nhow many elements you want to have?\n");
do
{
scanf ("%d", &n);
if ((n>30 || n<1))
printf("\ntoo high or too low\n");
}
while ((n<1 || n>30));
printf("\nyour number please:\n");
for(i = 0; i < n; i++)
{
do
{
printf("\nelement %d:", i+1);
scanf("%d", &a);
if ((a < 1 || a > 100))
printf("\nnumber too high or too low\n");
tab[i]=a;
}
while((a < 1 || a > 100));
}
printf("\nyour numbers:");
for (i=0; i<n; i++)
{
printf("\n%d", tab[i]);
}
int min = tab[0];
int max = tab[0];
for (i = 0; i<n; i++)
{
if (tab[i]> max)
max = tab[i];
if(tab[i]< min)
min = tab[i];
}
printf("\nsmallest: %d", min);
printf("\nbiggest: %d", max);
}
【问题讨论】:
-
int tab[n];n 包含什么? -
启用编译器警告!然后阅读它们,理解它们并修复你的代码。
标签: c