(1)
#include "stdio.h"void change(int numsSource[][20], int numsDest[][20]){
char i,j,k
for(i=0i<20i++)
for(j=0j<20j++)
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=0i<ni++){
for(j=0j<nj++){
scanf("%d",a[i]+j)
printf("%6d",a[i][j])
}
printf("\n")
}
change(a,b)
printf("\nAfter the transpose:\n")
for(i=0i<ni++){
for(j=0j<nprintf("%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=0m<Nscanf("%d",p+m++))
printf("Input k(int N>=k>0)...\nk=")
scanf("%d",&k)
for(t=m=0m<Nm++){
for(q=m,n=q+1n<Nn++)
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=0i<nscanf("%d",a+i++))
printf("a[0] = %d\n",a[0])
for(i=0i<ni++){
for(k=i,j=k+1j<nj++)
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
}
运行样例:
首先说明一下,这道题目的答案却是是 3。
我在编译器运行了一下你的代码:
接下来分析一下这个题目的流程:
1、在if(x <y)这个判断条件中,x==1, y==-1,条件是不成立的,所以走else分支。
2、在else分支中,z==2,现在 z+=1之后, z==3。
3、在最后一步printf中打印最终结果z == 3。
如果以上回答对你有帮助,请采纳下,谢谢。
#include <stdio.h>struct student
{
int number
char name[20]
int age
char address[50]
float class1grade
float class2grade
float class3grade
float avegrade
char ranklevel
int rank
}
student schoolstu[100]
void input(int n) //学生人数n。
{
for(int i=0i<ni++)
{
scanf("%d%s%d%s",&schoolstu[i].number,schoolstu[i].name,&schoolstu[i].age,schoolstu[i].address)
scanf("%f%f%f",&schoolstu[i].class1grade,&schoolstu[i].class2grade,&schoolstu[i].class3grade)
}
}
void average(int n)
{
for(int i=0i<ni++)
{
schoolstu[i].avegrade=(schoolstu[i].class1grade+schoolstu[i].class2grade+schoolstu[i].class3grade)/3
}
}
void gradeclass(int n)
{
for(int i=0i<ni++)
{
if(schoolstu[i].avegrade>=90) schoolstu[i].ranklevel = 'A'
else if(schoolstu[i].avegrade>=80 &&schoolstu[i].avegrade<90) schoolstu[i].ranklevel = 'B'
else if(schoolstu[i].avegrade>=70 &&schoolstu[i].avegrade<80) schoolstu[i].ranklevel = 'C'
else if(schoolstu[i].avegrade>=60 &&schoolstu[i].avegrade<70) schoolstu[i].ranklevel = 'D'
else schoolstu[i].ranklevel = 'E'
}
}
void rank(int n)
{
int temp=1
for(int i=0i<ni++)
{
for(int j=0j<nj++)
{
if(schoolstu[i].avegrade<schoolstu[j].avegrade)
temp++
}
schoolstu[i].rank = temp
}
}
void print(int n)
{
for(int i=0i<ni++)
{
printf("%d %s %d %s ",schoolstu[i].number,schoolstu[i].name,schoolstu[i].age,schoolstu[i].address)
printf("%f %f %f %f ",schoolstu[i].class1grade,schoolstu[i].class2grade,schoolstu[i].class3grade,schoolstu[i].avegrade)
printf("%c %d\n",schoolstu[i].ranklevel,schoolstu[i].rank)
}
}
int main()
{
int n=0
scanf("%d",&n)
input(n)
average(n)
gradeclass(n)
rank(n)
print(n)
return 0
}