两个c语言编程问题 应用主函数和数组

应用主函数 和十位数组编程 用户输入第一行,输出为第二行
5 4 3 2 1 10 9 8 7 6
1 2 3 4 5 6 7 8 9 10

然后用动态数组调整程序, 前两行为输入, 最后一行为输出
4
9 1 4 5
1 4 5 9

第一个:#include<stdio.h>
main()
{
int i,j,z,a[10];
for(i=0;i<=9;i++)
{printf("请输入第%d个整数",i+1);
scanf("%d",&a[i]);}
for(i=1;i<=9;i++)
{for(j=9;j>=i;j--)

if(a[j]<a[j-1])
{
z=a[j];
a[j]=a[j-1];
a[j-1]=z;
}}
for(i=0;i<=9;i++)
printf("%d\t",a[i]);
}
第二题:#include<stdio.h>
main()
{
int i,j,z,k,a[4];
printf("要输入请按“4”:\n");
k=getchar();
switch(k)
case '4':{
for(i=0;i<=3;i++)
{printf("请输入第%d个整数",i+1);
scanf("%d",&a[i]);}
for(i=1;i<=3;i++)
{for(j=3;j>=i;j--)

if(a[j]<a[j-1])
{
z=a[j];
a[j]=a[j-1];
a[j-1]=z;
}}
for(i=0;i<=3;i++)
printf("%d\t",a[i]);
break;
default:printf("error");}
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-03-09
1.
//---------------------------------------------------------------------------

#include <stdio.h>
#include <stdlib.h>

int comp(const void *a,const void *b)
{
return *(int *)a-*(int *)b;
}
int main(void)
{
int i,a[10];
for (i = 0; i<10; i++) scanf("%d",&a[i]);

qsort(a,10,sizeof(int),comp);

for (i = 0; i < 10; i++) printf("%d ",a[i]);

return 0;
}
//---------------------------------------------------------------------------

2.
//---------------------------------------------------------------------------

#include <stdio.h>
#include <stdlib.h>

int comp(const void *a,const void *b)
{
return *(int *)a-*(int *)b;
}
int main(void)
{
int i,*a=NULL,n;
scanf("%d",&n);
if (a=(int *)malloc(sizeof(int)*n))
{

for (i = 0; i<n; i++) scanf("%d",&a[i]);

qsort(a,n,sizeof(int),comp);

for (i = 0; i < n; i++) printf("%d ",a[i]);

free(a);
}
return 0;
}
//---------------------------------------------------------------------------
第2个回答  2010-03-10
用冒泡排序法就可以完成第一个问题

第二个先编程查找有没有相同的,然后排序输出
第3个回答  2010-03-12
#include"stdio.h"
void main()
{
int a[10];
int i,j,n;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<9;i++)
{
for(j=i+1;j<10;j++)
{
if(a[i]>a[j])
{n=a[i];a[i]=a[j];a[j]=n;}
}
}
for(i=0;i<10;i++)
printf("%d\t",a[i]);
printf("\n");
}
第二个
#include<stdio.h>
void main()
{
int a[100];
int i,j,n;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)
{
if(a[i]>a[j])
{n=a[i];a[i]=a[j];a[j]=n;}
}
}
for(i=0;i<n;i++)
printf("%d\t",a[i]);
printf("\n");
}

请用C语言:求一个数组中所有元素的和,在主函数中检验
如果说,数组中保存的是字符串型数字比如“100”,那你需要把字符串转成数字再相加。或者还可以把所有字符拼接在一起。include<stdio.h>#include <stdlib.h>#include<string.h>int main( ){ int nums[10]={100,200,300,400,500,600,700,800,900,1000},i,sum=0; char nums2str[10]...

C语言程序设计问题:用内联函数实现求出一维数组的最大值。在主函数中...
include<stdio.h>inline int maxn(int *p,int n){ int i,maxnum=p[0]; for(i=1;i<n;i++) if(p[i]>maxnum)maxnum=p[i]; return maxnum;}int main(){ int a[100],n,i; scanf("%d",&n); for(i=0;i<n;i++) scanf("%d",a+i); printf("%d\\n",maxn(a,n))...

两个c语言的问题~
int main(){ char s[100],c;int i=-1,j,k;while(c=getchar()!='\\n')s[++i]=c;printf("%d\\n",i+1);return 0;} include <stdio.h> include<string.h> void strlw(char s[100]){ int k=strlen(s),i;for(i=0;i<k;i++)if(s[i]>='A'&&s[i]<='Z')s[i]+=32...

C语言编程,求解
一、程序需要四个函数,分别是入口主函数、输入函数、输出函数、排序函数。二、题目要求按首字母排序,未限制大小写,因此不能直接用字母比大小,需根据大小写求字母差值,用差值比较。三、字符串排序交换,用函数strcpy。下面是代码:include<stdio.h> include<string.h> define MM 12\/\/月份个数 define...

C语言问题:为什么我在程序开头定义了一个全局数组并在主函数中赋值了...
f1(void); \/\/是函数申明哦不是调用\/\/应该修改为f1();另外建议在main函数最开头的那行void f1(void);建议移动到 main 函数的上面去。\/\/格式大概是这样void f1(void);int main() { \/\/输入数据处理 f1(); return 0;}void f1(void) { \/\/f1的函数主体} ...

C语言编程问题,初学者,不太会,谢谢
编写一个函数,删去输入的一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。在主函数输入一个有序数组,接着调用该自定义函数,最后输出删除重复数据后的数组元素。如:输入的数组元素为:999866000-2-2打印的结果为:9860-2 这个程序的实现...

帮忙设计两个C语言程序
2.程序如下:\/\/\/ include <stdio.h> include <ctype.h> include <conio.h> void fun(char s[], int num[]){ int i=0;char t;while ((t=s[i++])!='\\0'){ if (isspace(t)) num[0]++;else if (isdigit(t)) num[1]++;else if (islower(t)) num[2]++;else if (isuppe...

这个C语言编程不会,求高人指导下,谢谢、主函数sumA,B,C我该怎么用?
这样可以在`main`函数中获取最终的求和结果。同时,我也包括了函数原型声明,这是C语言编程中的一个好习惯,它有助于编译器在编译时进行类型检查。此外,我修正了一些语法错误,比如`scanf`的格式字符串中的`%d`应匹配`int`类型的变量,以及数组名`a[]`应与函数参数列表中的`a[]`保持一致。

C语言初级编程问题。输入两个数,打印出第一个有,第二个没有的数字
主函数中X,Y.定义数组p[10],q[10],长整形数X,Y.输入:用输入函数获取两个整数.判断:分别用 X,p 和Y,q调用F.打印:i从0循环到9,如果p[i]和q[i]均等于1,输出i.实现自己做吧...这个算法的运行时间是输入数字位数的线性时间.不需要循环嵌套.比算出一个数的一位,然后循环在第二个数中...

【C语言】编写函数(或方法):将某已知数组的奇数项组合成一个新的数 ...
include<stdio.h> void OddArray (int a[],int b[]){ int i;for(i=0;i<11;i++){ if(i%2==0)b[i\/2]=a[i];} } main(){ int a[]={1,2,3,4,5,6,7,8,9,10,11},b[6],i;OddArray(a,b);for(i=0;i<6;i++)printf("%-5d",b[i]);} ...

相似回答
大家正在搜