函数数组获取值

时间:2013-12-10 23:30:44

标签: c++

编写一个程序来存储大小为10的数组中的积分器,在函数Get_value()中初始化你的数组,用户将输入10个积分来填充数组。然后程序打印下面给出的用户菜单,必须是能够执行用户选择的各种功能..用户命令是: D显示数组中的所有非零值 T显示总数 R以反转顺序显示所有数字 Q退出该计划 在c ++中 我试着写但我没有得到确切的答案

#include <stdio.h>
int get_value();
int display();
void total(void);
int main ()
 {
int get_value[10];  
int i;
char c=0;

for(i=0;i<=9;i++){
    printf("Enter The value of get_value[%d]\n",i);
    scanf("%d",get_value[i]);
}

printf(" D to display all non-zero values in the array \n choose T to display the  total \n choose R to display all the number in reverse order \n choose Q to quit the program \n");
scanf("%d",&c);

if(c == D){
        display();
}
else if(c== T){
    total();
}
   return 0;

   }
int display()
{
    int i,get_value[10];
    for(i=0;i<=9;i++){
        if(get_value[i]!=0)
            printf("%d",get_value[i]);
    }
    return 0;
}
void total(void)
{
    int i,sum=0;
    for(i=0;i<=9;i++){
        sum+=i;
    }
        printf("%d",sum);
}

2 个答案:

答案 0 :(得分:0)

请注意:

if (c == D)

应该是:

if (c == 'D')

类似地:

else if (c == T)

应该是:

else if (c == 'T')

还存在各种其他问题,例如正如他在评论中指出的那样:

scanf("%d",&c);

不正确 - 它应该是:

scanf("%c",&c);

虽然:

c = getchar();

可能更好。

答案 1 :(得分:0)

#include <stdio.h>

int get_value();
int display(int values[], int n);
void total(int values[], int n);

int main()
{
    int n;
    n = 10;
    int values[n];
    int i;

    for(i=0;i<=n;i++){
            printf("Enter The value of get_value[%d]\n",i);
        values[i] = get_value();
    }

    printf(" D to display all non-zero values in the array \n choose T to display the  total \n choose R to display all the number in reverse order \n choose Q to quit the program\n");


    char c;
    scanf(" %c", &c);

    if(c == 'D') {
            display(values, n);
    }
    else if(c == 'T') {
            total(values, n);
    }
    else if (c == 'R') {

    }
    return 0;
}

int get_value()
{
        int usersChoice;
    scanf("%d", &usersChoice);
    return usersChoice;
}

int display(int values[], int n)
{
    int i;
    for(i=0;i<=n;i++){
        if(values[i]!=0)
            printf("%d", values[i]);
    }
    return 0;
}

void total(int values[], int n)
{
    int i,sum=0;
    for(i=0;i<=n;i++){
        sum+=values[i];
    }
    printf("%d",sum);
}

我认为这将回答您的所有问题。