编写完成如下功能的程序:输入若干个整数到数组中,当输入-999时表示输入完毕。
统计其中值等于50的元素个数,如果个数为0则输出“未找到”,如果个数不为0,则输出其个数,并输出这些元素的位置(下标值)。
解答如下
#include<stdio.h>
int main()
{
int t[225],p=0,tem;
do {
scanf("%d",&tem);
t[p++]=tem;
}
while(tem!=-999);
int count=0,index[225];
for(int i=0; i<p; i++)
{
if(t[i]==50)
{
index[count++]=i;
}
}
printf("值等于50的元素个数:%d\n",count);
printf("下标分别为:");
for(int i=0; i<count; i++)
printf("%d ",index[i]);
return 0;
}
循环输入数值到数组用if判断即可,
你题目的解答代码如下:
#include<stdio.h>
int main()
{
int n,i,l=0,count=0;
int a[100] = {0};
int b[100] = {0};
scanf("%d", &n);
while (n!=-999)
{
a[l++] = n;
scanf("%d", &n);
}
for (i = 0; i < l; i++)
{
if (a[i]==50)
{
b[count++] = i;
}
}
if (count==0)
{
printf("未找到\n");
}
else
{
printf("等于50个数:%d\n这些元素的位置:", count);
for (i = 0; i < count; i++)
{
printf("%d ", b[i]);
}
}
return 0;
}
如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!
运行结果及代码:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#define MAXLEN 100
int main()
{
int a[MAXLEN], i=0,j=0, cnt = 0;
int t = 0;
while (1)
{
scanf("%d", &t);
if (t == -999) break;
else
{
if (t == 50)
{
a[cnt] = j;
cnt++;
}
j++;
}
}
if (cnt == 0)
printf("未找到\n");
else
{
printf("个数:%d\n", cnt);
for (i = 0; i < cnt; i++)
printf("%d ", a[i]);
}
return 0;
}