几道初学者的c语言题目

1:写一个函数,使给定的一个二维数组(n×n)转置,即行列互换voidchange(intnumsSource[][20],intnumsDest[][20]);在mai... 1:写一个函数,使给定的一个二维数组(n×n)转置,即行列互换
void change(int numsSource[][20], int numsDest[][20]);
在main函数中调用change函数
输入要求
1个n行n列的二维数组,n小于20
输出要求
1个n行n列的二维数组

2:若某元素在一组数中比它大元素越多,则说明这个数在这组数的值就越小。
现请你统计出数组中的每个元素,数一数该数组有多少个元素比它大。
注意:本题有多组数据!!
输入要求
第一行:N
第二行:N个整数
输出要求
N个整数,各数之间有空格

3:有一天,贪吃的猪八戒来到了一个大果园,果园里有N(N≤100000)个大西瓜,每个西瓜的重量不大于长整型(longint),并且每个西瓜的重量可相同。猪八戒非常无聊,先把所有的那些西瓜按从小到大的顺序排列,然后再选一个重量是K的西瓜,请你帮他把他想吃的西瓜找出来。
注意:本题有多组数据!!
输入要求
第一行输入N,然后以下N行输入N个整数,最后输入K(K≤N)。
输出要求
输出重新排列后,K在N个数中的位置,如果重量为K的西瓜有多个,则输出第一次出现K的位置。

4:将一正整数数组{a1,a2,…,an}重新排成一个新的数组。新数组中,比a1小的数都在a1的左面(后续的再向左存放),大于等于a1的数都在a1的右面(后续的再向右存放),从a1向右扫描。
要求:定义函数void sort(int a[],int size) ;对整数数组a按照要求重新排列
在main函数中调用sort函数
注意:本题有多组数据!!
输入要求
第一行为一个正整数n,n大于1小于50
第二行为n个整数
输出要求
输出重新排列后的数组
printf("%5d",.....)
展开
 我来答
White_MouseYBZ
2017-11-26 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6280万
展开全部

(1)

#include "stdio.h"
void change(int numsSource[][20], int numsDest[][20]){
char i,j,k;
for(i=0;i<20;i++)
for(j=0;j<20;j++)
numsDest[j][i]=numsSource[i][j];
}
int main(int argv,char *argc[]){
int a[20][20],b[20][20],n,i,j;
printf("Input n(int 0<n<21)...\n");
if(scanf("%d",&n)!=1 || n<1 || n>20){
printf("Input error, exit...\n");
return 0;
}
for(i=0;i<n;i++){
for(j=0;j<n;j++){
scanf("%d",a[i]+j);
printf("%6d",a[i][j]);
}
printf("\n");
}
change(a,b);
printf("\nAfter the transpose:\n");
for(i=0;i<n;i++){
for(j=0;j<n;printf("%6d",b[i][j++]));
printf("\n");
}
return 0;
}

运行样例:

(2)题意与输入、输出要求不符,就不做了吧?

(3)

#include "stdio.h"
#include <stdlib.h>
int main(int argv,char *argc[]){
int N,k,m,n,q,*p,t;
printf("Input N(int 0<N<100001,0 end)...\nN=");
while(1){
if(scanf("%d",&N)!=1 || N<1 || N>100000){
if(N==0)
printf("You have chosen to quit...\n");
else
printf("Input error, exit...\n");
return 0;
}
if((p=(int *)malloc(sizeof(int)*N))==NULL){
printf("Application memory failure,exit...\n");
exit(0);
}
printf("Input %d integer(s)...\n",N);
for(m=0;m<N;scanf("%d",p+m++));
printf("Input k(int N>=k>0)...\nk=");
scanf("%d",&k);
for(t=m=0;m<N;m++){
for(q=m,n=q+1;n<N;n++)
if(p[q]>p[n])
q=n;
if(m!=q)
n=p[m],p[m]=p[q],p[q]=n;
printf("%6d",p[m]);
if(!t && k==p[m])
t=m+1;
}
printf("\n");
printf(t ? "It is at %d\n\n" : "No find...\n\n",t);
free(p);
}
return 0;
}

运行样例:

(4)

#include "stdio.h"
int main(int argv,char *argc[]){
int a[50],i,j,k,n;
printf("Input n(int 0<n<50,0 end)...\n");
while(1){
printf("n=");
if(scanf("%d",&n)!=1 || n<1 || n>49){
if(n==0)
printf("You have chosen to quit...\n");
else
printf("Input error, exit...\n");
return 0;
}
printf("Input %d integer(s)...\n",n);
for(i=0;i<n;scanf("%d",a+i++));
printf("a[0] = %d\n",a[0]);
for(i=0;i<n;i++){
for(k=i,j=k+1;j<n;j++)
if(a[k]>a[j])
k=j;
if(k-i)
j=a[k],a[k]=a[i],a[i]=j;
printf("%6d",a[i]);
}
printf("\n\n");
}
return 0;
}

运行样例:

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式