c - 变量只显示其最近的值
问题描述
我需要帮助解决我在学校遇到的这个问题。这个问题是用塞尔维亚语写的,我会尽力翻译它。
编写一个程序,输入一维数组的 n 个元素,然后显示它们的序数、索引和值(参见测试示例)
测试示例也是塞尔维亚语的,但我想你可以猜到你需要做什么。这是我试图做的:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n,i,clan,broj=0,b,a;
a=1;
printf("Unesi broj elementa niza:\n");
scanf("%d", &n);
for (i=1;i<=n;i++)
{
printf("Unesi %d clan niza:\n", i);
printf("a[%d]=", broj);
broj++;
scanf("%d", &clan);
}
for (b=1;b<=n;b++)
{
printf("%d. clan niza je a[%d]=%d\n", a, b, clan);
a++;
}
return 0;
}
一切正常,除了“氏族”只会显示为最新输入的数字。
解决方案
“......只有最后输入的号码会被打印回给我,我找不到解决方案......”
使用数组。
该变量clan
一次不能包含多个int
值,但是,数组变量int clan[n];
可以容纳多个n
int
值。以下是修改后的代码以使用VLA容纳数组n
元素:clan
int main(void)
{
int n,i,broj=0,b,a;//remove clan
a=1;
printf("Unesi broj elementa niza:\n");
if(scanf("%d", &n) == 1)//test for success here, exit if fail
{
int clan[n];//use user input value to help create array of clan
for (i=0;i<n;i++)//array index is from 0 to n-1
{
printf("Unesi %d clan niza:\n", i);
printf("a[%d]=", broj);
broj++;
scanf("%d", &clan[i]);//modify to populate 1 element of clan array
}
for (b=0;b<n;b++)
{
printf("%d. clan niza je a[%d]=%d\n", a, b, clan[i]);//modify to oupput 1 element of clan array
a++;
}
}
else
{
printf("scanf() call failed. Exiting.");
}
return 0;
}
推荐阅读
- regex - 将正则表达式从 bash 转换为 zsh
- sql - Big Query 数据总数错误,LEFT JOIN 后怀疑重复行
- ios - ios 13上的alamofire调用失败
- function - 芭蕾舞演员中的未定义函数
- r - 如何将 SAS 日期转换为 R 日期(或 SAS 日期时间转换为 R 日期时间)
- annotations - 断言失败:属性“FilterRestrictions”定义了两次
- javascript - 单击后停止事件处理程序的运行
- c# - System.Net.WebException:远程服务器返回错误:(429)请求太多
- php - Laravel 验证错误未显示,但它们确实显示在 422 错误中
- firebase - Ionic 4 with firebase - 2 次离线工作 1 次