输入数字判断然后存进数组。打一打代码,我大一才刚学

img

img


用户输入数字,判断是否在1-100之内,如果是,存进数组,如果不是就再问一遍,用户再输入数字,判断。要求用四个子函数,不过我奇怪的是空返回类型,那我怎么调用函数呢?

就是写四个简单的函数而已。如果不在0-100之间,重新输入呗

#include <stdio.h>
void fillTable(int myArray[],int n)
{
    for(int i=0;i<n;i++)
    {
        printf("Give the %d. number > ",i+1);
        scanf("%d",&myArray[i]);
        if(myArray[i] > 100 || myArray[i] < 0)
            i--;
    }
}

void printTable(int myArray[],int n)
{
    printf("For the array:\n");
    for(int i=0;i<n;i++)
        printf("%d ",myArray[i]);
    printf("\n");
}

void findGreatest(int myArray[],int n)
{
    int max=0,maxid= 0;
    for(int i=1;i<n;i++)
    {
        if(myArray[i] > myArray[maxid])
        {
            max = myArray[i];
            maxid = i;
        }
    }
    printf("The greatest value is %d which is in index %d\n",max,maxid);
}

void calcuateAverage(int myArray[],int n)
{
    int sum = 0;
    for(int i=0;i<n;i++)
        sum += myArray[i];
    printf("The average of the values in the array is %.3f\n",sum*1.0/n);
}

int main()
{
    int n = 10,myArray[10];
    fillTable(myArray,10);
    printTable(myArray,10);
    findGreatest(myArray,10);
    calcuateAverage(myArray,10);
    return 0;
}

函数无返回值为什么不能调用呢

代码打一打,谢谢

img

#include <stdio.h>
void fillTable(int myArray[],int n)
{
    for(int i=0; i<n; i++)
    {
        printf("Give the %d. number > ",i+1);
        scanf("%d",&myArray[i]);
        if(myArray[i] > 100 || myArray[i] < 0)
            i--;
    }
}
void printTable(int myArray[],int n)
{
    printf("\nFor the array:\n");
    for(int i=0; i<n; i++)
        printf("%d ",myArray[i]);
    printf("\n\n");
}
void findGreatest(int myArray[],int n)
{
    int max=0,max_index=0;
    for(int i=1; i<n; i++)
    {
        if(myArray[i] > myArray[max_index])
        {
            max = myArray[i];
            max_index = i;
        }
    }
    printf("The greatest value is %d which is in index %d\n",max,max_index);
}
void calcuateAverage(int myArray[],int n)
{
    int sum = 0;
    for(int i=0; i<n; i++)
        sum += myArray[i];
    printf("The average of the values in the array is %.3f\n",sum*1.0/n);
}
int main()
{
    int n = 10;
    int myArray[10];
    fillTable(myArray,n);
    printTable(myArray,n);
    findGreatest(myArray,n);
    calcuateAverage(myArray,n);
    return 0;
}

用的中文输出哈哈哈

#include<stdio.h>
#include<stdlib.h>
void test_1(int *p,int *x); //主要输入
void test_2(int *p,int *x); //重复输入
int comp(const void* a, const void* b);//用来做比较的函数。
void test_4(int *p,int *x); //显示数

void test_1(int* p, int* x)
{
    int n;//输入值
    int m;//判断时用的
    for (int i = 0; i < *x; i++) 
    {
        printf("请输入你的数字(1~100)\n");
        scanf_s("%d", &n);
        if ((n >= 1) && (n <= 100))
        {
            *p = n;    
                
        }
        else
        {
            printf("请问你输入的n是1~100吗?\n");
            printf("选择是或不是,1代表是,0代表不是,输入1或0\n");
            scanf_s("%d", &m);
                
            if (m == 0)//重新输入
            {
                test_2(p, x); 
            }
            else
            {
                printf("这个值不加入数组\n");
                i = i - 1;
                p = p - 1;// 回溯一下
            }
        }
        p++;

    }
    
}
void test_2(int* p,int *x)//重复输入
{
    int n = 1;
        if (n >= 1 && n <= 100)
        {
            printf("请输入你的数字(1~100)\n");
            scanf_s("%d", &n);
            *p = n;
        }

}
int comp(const void* a, const void* b)//用来做比较的函数。
{
    return *(int*)a - *(int*)b;
}
void test_4(int *p,int *x)
{
    qsort(p, 5, sizeof(int),comp);
    for (int i = 0; i < *x; i++)
    {
        printf("%d ", *p);
        p++;
    }
}
int main()
{
    int arry[5]; 
    int a = 5;
    int* x = &a;
    test_1(arry, x);
    test_4(arry, x);
    return 0;
}