高分悬赏C语言的几个问题

1.编写程序,输入一个正整数n(1<n<=10),在输入n个整数,将最小值与第一个数交换,最大值与最后一个数交换,然后输出交换后的n个数。

2.编写程序,输入一个正整数n(1<n<=6)和n阶方阵a中的元素,如果a是上三角矩阵,输出“YES”,否则,输出“NO”(上三角矩阵即主对角线以下的元素都为0的矩阵,主对角线为从矩阵的左上角至右下角的连线。)

3.编写程序,输入两个正整数m和n(1<=m,n<=6),然后输入该m行n列矩阵a中的元素,分别求出各行元素之和,并输出。

要详细哦 直接复制过去就能用滴~~~~
是哦 好像是这样 不过我没学过 ....呵呵

幼稚什么啊 我根本都看不懂。。。。

真愁人 我要是能做明白就不问了。。。哎

大清早起来帮你做的,结果都通过编译运行,完全正确。 这次你可能真的很急,以后得自己多多努力学习!
1.编写程序,输入一个正整数n(1<n<=10),在输入n个整数,将最小值与第一个数交换,最大值与最后一个数交换,然后输出交换后的n个数。

#include<stdio.h>
#define N 10

int main()
{
int i,t,*p_max,*p_min,*p,a[N];

printf("请输入%d个数: ",N);
for(i=0;i<N;i++)
scanf("%d",&a[i]);
p=a;
p_max=p;
p_min=p;

for(i=1;i<N;i++) /*此循环用于找最小的数和最大的数的地址*/
{
if(*(p+i)>*p_max)
p_max=p+i;
if(*(p+i)<*p_min)
p_min=p+i;
}
p=a;

/*最大的数与最后一个数对换*/
t=*(p+N-1);
*(p+N-1)=*p_max;
*p_max=t;

/*最小的数与第一个数对换*/
t=*p;
*p=*p_min;
*p_min=t;

/*打印输出*/
for(i=0;i<N;i++)
printf("%d ",*(p+i));
printf("\n");

return 0;
}

2.编写程序,输入一个正整数n(1<n<=6)和n阶方阵a中的元素,如果a是上三角矩阵,输出“YES”,否则,输出“NO”(上三角矩阵即主对角线以下的元素都为0的矩阵,主对角线为从矩阵的左上角至右下角的连线。)
#include<stdio.h>
#include<malloc.h>

void main()
{
int i,j,flag=0,n,*a[6];

scanf("%d",&n);
if(n<=1||n>=7)
printf("n的值不符合要求,按任意键退出程序运行!\n");
else
{
for(i=0;i<n;i++)
{
a[i]=(int*)calloc(n,sizeof(int));
if(a[i]==NULL)
printf("内存分配失败,程序无法运行!请按任意键退出程序运行!\n");
}
for(i=0;i<n;i++)
for(j=0;j<n;j++)
scanf("%d",a[i]+j);

for(i=0;i<n;i++)
for(j=0;j<=i;j++)
if(*(a[i]+j)!=0)
{
flag=1;
break;
}
if(flag==0)
printf("YES\n");
else
printf("NO\n");
}

}

3.编写程序,输入两个正整数m和n(1<=m,n<=6),然后输入该m行n列矩阵a中的元素,分别求出各行元素之和,并输出。
#include<stdio.h>
#include<malloc.h>

void main()
{
int i,j,m,n,s,*a[6];

scanf("%d%d",&m,&n);
if(n<1||n>6||m<1||m>6)
printf("输入的值不符合要求,按任意键退出程序运行!\n");
else
{
for(i=0;i<m;i++)
{
a[i]=(int*)calloc(n,sizeof(int));
if(a[i]==NULL)
printf("内存分配失败,程序无法运行!请按任意键退出程序运行!\n");
}
for(i=0;i<m;i++)
for(j=0;j<n;j++)
scanf("%d",a[i]+j);

for(i=0;i<m;i++)
{
s=0;
for(j=0;j<n;j++)
s+=*(*(a+i)+j);
printf("第%d行的元素的和为%d.\n",i,s);
}
}

}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-04-27
/************************************************************************
1.编写程序,输入一个正整数n(1<n<=10),在输入n个整数,将最小值与第一个数交换,
最大值与最后一个数交换,然后输出交换后的n个数。

2.编写程序,输入一个正整数n(1<n<=6)和n阶方阵a中的元素,如果a是上三角矩阵,
输出“YES”,否则,输出“NO”(上三角矩阵即主对角线以下的元素都为0的矩阵,
主对角线为从矩阵的左上角至右下角的连线。)

3.编写程序,输入两个正整数m和n(1<=m,n<=6),然后输入该m行n列矩阵a中的元素,
分别求出各行元素之和,并输出。
************************************************************************
要下班了。。回头再补上吧。
**************************************************************************/
#include <stdio.h>

void welcome();
void fun_No1();
void fun_No2();
void fun_No3();

int number = 0;
#define MAX_SIZE 50

int main()
{
welcome();
switch(number)
{
case 1:
fun_No1();
break;
case 2:
fun_No1();
break;
case 3:
fun_No1();
break;
default:
break;
}
return 0;
}
void welcome()
{
printf("Choose your subject:\n1 for the first\n2 for the second\n3 for the third\n");
scanf("%d",&number);
}
/************************************************************************
1.编写程序,输入一个正整数n(1<n<=10),在输入n个整数,将最小值与第一个数交换,
最大值与最后一个数交换,然后输出交换后的n个数。
**************************************************************************/
void fun_No1()
{
int array[MAX_SIZE] = {0};
int n;
int i;
int max,min,max_position,min_position,temp;
printf("Input a number:");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("Input No[%d]:",i+1);
scanf("%d",&array[i]);
}
max = array[0];
min = array[0];
for(i=1;i<n;i++)
{
if(array[i]>max)
{
max = array[i];
max_position = i;
}
if(array[i]<min)
{
min = array[i];
min_position = i;
}
}
temp = array[0];
array[0] = array[min_position];
array[min_position] = temp;

temp = array[n-1];
array[n-1] = array[max_position];
array[max_position] = temp;

for(i=0;i<n;i++)
{
printf("Number[%d] = %d\n",i+1,array[i]);
}
}
/************************************************************************
2.编写程序,输入一个正整数n(1<n<=6)和n阶方阵a中的元素,如果a是上三角矩阵,
输出“YES”,否则,输出“NO”(上三角矩阵即主对角线以下的元素都为0的矩阵,
主对角线为从矩阵的左上角至右下角的连线。)
**************************************************************************/
void fun_No2()
{
}
/************************************************************************
3.编写程序,输入两个正整数m和n(1<=m,n<=6),然后输入该m行n列矩阵a中的元素,
分别求出各行元素之和,并输出。
**************************************************************************/
void fun_No3()
{
}
第2个回答  2009-04-26
本来已经全部写好了。但发现楼主要 "要详细哦 直接复制过去就能用滴~~~~"
决定还是不发源代码了。
劝楼主一句:这样的思想不好!!自己写一个比复制别人的一万个强上一万倍!
第3个回答  2009-04-26
自己想 想一天或者一个礼拜一道题目 那你会从中收获很多东西.............
第4个回答  2009-04-26
都很简单,就是不想写啊,你搞这么多意义也不大。
还不如自己研究一下。

慢慢来呗。

刚开始也别太着急。
学着自己走路
相似回答