急求一个c语言程序,要求用到函数,数组循环和选择……谢谢

如题所述

定义函数GetData( )用于接收键盘输入的一组整型数据,并放入一数组中;另外再定义一个函数Sort( )用于对输入的这一组数据按照降序排列。主函数先后调用GetData和Sort函数,输出最后的排序结果。

#include <stdio.h>
void GetData (int x,int a[100]);
void Sort (int x,int a[100]);
void main ()
{
int x,i,a[100];
printf("请输入你要输入的数字的个数:");//输入你想要输入的数字的个数,小于100个。
scanf("%d",&x);//输完一个数后按回车键,继续输入下一个数
printf("\n");
GetData (x,a);//函数引用
printf("你一共输入了 %d 个数:",x);
for (i=0;i<=x-1;i++)
printf("%5d",a[i]);
printf("\n\n");
Sort (x,a); //函数引用

printf("按照降序排列后的数为:");
for (i=0;i<=x-1;i++)
printf("%5d",a[i]);
printf("\n\n"); }

//输入数字
void GetData (int x,int a[100])
{ int i=0;
do { printf("请输入第%d个数:",i+1);
scanf("%d",&a[i]);
printf("\n");
i++; }
while (i<=x-1); }

//排序
void Sort (int x,int a[100])
{ int i,j,t;
for (i = 1; i < x; i++)
for (j = 0; j < x- i; j++)
if (a[j] < a[j+1])
{
t = a[j];
a[j] = a[j+1];
a[j+1] = t; } }

我自己编写的程序,呵呵,应该还行
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-05-29
#include <stdio.h>
#include <malloc.h>

typedef struct _stu
{
int sid;
struct _stu * pNext;
}STU,*PSTU;

typedef struct _stack
{
PSTU pTop;
PSTU pBottom;
}STACK,*PSTACK;

bool init(PSTACK);
bool push(PSTACK,int);
bool pop(PSTACK,int *);
bool traverse(PSTACK);

int main()
{
STACK myStack;
int i;
init(&myStack);
for (i=0;i<100;i++)
{
push(&myStack,i+1);
}
// push(&myStack,7777);
if(pop(&myStack,&i))
{
printf("出栈的元素是%d\n",i);
}

traverse(&myStack);

return 0;

}

bool init(PSTACK ps)
{
ps->pTop= (PSTU)malloc(sizeof(STU));
if (NULL==ps->pTop)
{
return false;
}
else
{
ps->pBottom=ps->pTop;
ps->pTop->pNext=NULL;
// ps->pBottom->pNext=NULL;
return true;
}
}

bool push(PSTACK ps,int val)
{
PSTU pTemp=(PSTU)malloc(sizeof(STU));
pTemp->sid=val;
pTemp->pNext=ps->pTop;
ps->pTop=pTemp;
printf("插入%d\t成功\n",val);
return true;
}

bool traverse(PSTACK ps)
{
PSTU pTemp=ps->pTop;
while (pTemp != ps->pBottom && pTemp!=NULL)
{
printf("%d ",pTemp->sid);
pTemp=pTemp->pNext;

}
return false;
}

bool pop(PSTACK ps,int *val)
{

if (ps->pTop!=ps->pBottom && ps->pTop!=NULL)
{
*val=ps->pTop->sid;
PSTU pTemp=ps->pTop;
ps->pTop=ps->pTop->pNext;
free(pTemp);
}
else
{
return false;
}

return true;
}

学数据结构的时候写的。。。本回答被网友采纳
第2个回答  2011-05-31
题目:我们平常数数都是喜欢从做左向右数的,某英国人数数和我们相反,现在输入一个整数T,说明是T行,再输入T行数字,输出输入的两行数的逆序并用英文单词的大写的首字母。如:
input:2 output:TO
12 FTTO
1234
程序如下:
#include<stdio.h>
void main()
{
void p(int x);
int h,i,n;
long int a[100],m;
scanf("%d",&h);
for(i=0;i<h;i++)
scanf("%ld",&a[i]); /*输入数字*/
for(i=0;i<h;i++)
{
m=a[i];
while(m/10!=0)
{
n=m%10;
p(n);
m=m/10;
}
p(m);
printf("\n");
}
}
void p(int x)
{
switch(x)
{
case 0:printf("Z");break;
case 1:printf("O");break;
case 2:
case 3:printf("T");break;
case 4:
case 5:printf("F");break;
case 6:
case 7:printf("S");break;
case 8:printf("E");break;
case 9:printf("N");break;
}
}
第3个回答  2011-05-29
给个带注释,并且很简单的。

#include<stdio.h>

void findChar(char s[],char c)
{
for(int i=0;s[i]!='\0';i++)
{
if(s[i]==c)
{
printf("查到了\n");
return;
}
}

printf("没查到\n");
}

void main()
{
char a[10],c=0;
int i=0;

printf("输入10个字符");
for(i=0;i<10;i++)
scanf("%c",&a[i]);

printf("输入1个字符");
scanf("%c",&c);

findChar(a,c);
getchar();

}

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网