两道c语言的编程题,很简单 ,急。。。最好注有说明,没有也没事。谢谢了!!!!

2024-12-17 19:18:01
推荐回答(3个)
回答1:

第一题:
#include

int main()
{
int num[20]; /*存储输入的数据*/
int i=0;
/*输入不超过20的数,当输入为0时结束*/
do
{
printf("Please input a number:\n");
scanf("%d",&num[i]);
i++;
/*处理超过20个数的情况*/
if (i >=20 )
{printf("Too many numbers!\n");
break;
}
}while (num[i-1] != 0);
extern void count(int *p); /*count()函数声明*/
count(num);
return 0;
}
void count(int *p)
{
int countp=0,countm=0; /*计数器,正数,负数*/
for (int i=0;i<20;i++)
{
while (*p != 0)
{
if (*p > 0)
countp++; /*大于0,正数*/
else
countm++; /*小于0,负数*/
p++;
}
}
/*显示结果*/
printf ("The positive numberis: %d\nThe negative number is: %d\n",countp,countm);
}

第二题:这个用字符函数isalpha()就成了啊。。
#include
#include

int main()
{
char str[100]; /*定义字符数组,大小自己改*/
char temp;
int count=0; /*计数器*/
int i=0;
printf("Input ....\n");
while ((temp=getchar()) != '\n')
{
str[i]=temp;
i++;
}
for (i=0;str[i] != '\0';i++)
{
if (isalpha(str[i]))
count++;
}
printf("%d\n",count);
system("pause");
}

回答2:

1,解:源程序如下:(由于涉及到地址传递,所以必需要用到指针)
main()
{
int z,f;
printf("plsease enter a number:\n");
count(&z,&f);/*将作为地址传递,以便接收,因为值传递不会改变主函数中的内容呀*/
printf("zhen shu count=%d\n fu shu count=%d\n",z,f);
}
int count (int*b,int*c)
{
int i,a[20],y=0,z=0;
float x;
for (i=0;i<20;i++)
{
scanf("%f",&x);
if (x>0)
y++;
else if (x<0)
z++;
else
break;
}
*b=y;/*以地址方式将结果放在主函数的Z,F中,这个学了指针就知道*/
*c=z;
}

2,解:源程序如下:
int string(char a[])
{
int i,s=0;
for (i=0;a[i]!='\0';i++)
if (a[i]>='a'&&a[i]<='z'||a[i]>='A'&&a[i]<='Z')/*a[i]!='\0'表示若字符没有结束标志则继续循环*/
s++;
return s;
}

main()
{
char s[100];
int i,en=0;
clrscr();
printf("please enter a string:\n");
gets(s);
en=string(s);
printf("letter=%d",en);
}
以上程序理解都很容易,都可以在TC2.0和VC6.0++下运行的!
祝你学习进步呀!

回答3:

void f()
{int a;
int b=0;
int c=0;
for(i=0;i<20;i++)
{
cin>>a;
if(a==0)
{cout<<"你输入的数是0.";break;}
if(a>0)b++;
else c++;
}
cout<<"你输入的正数个数是:"<cout<<"你输入的负数个数是:"<
}
//然后在主函数里写入f();