c语言第八次作业

1.选择法排序。输入一个正整数n(1<n<=10),再输入n个整数,将他们从大到小排序后输出。试写出相应程序。

 

#include<stdio.h>
int main (void)
{
int i,index,k,n,t;
int a[10];
printf("输入数据的个数n:");
scanf("%d",&n);
printf("输入数据%d;",n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(k=0;k<n-1;k++)
{
index=k;
for(i=k+1;i<n;i++)
if(a[i]>a[index])
index=i;
t=a[index];
a[index]=a[k];
a[k]=t;
}
printf("排序结果:");
for(i=0;i<n;i++)
printf("%d\t",a[i]);
printf("\n");
return 0;
}
2.求一批整数中出现次数最多的数字,输入一个正整数n(1<n<=1000),再输入n个整数,分析每个整数的每一位数字,求出现次数最多的数字。

#include<stdio.h>

int main()
{
int a[10],b[1000],i,n,x;
printf("输入数据的个数n:");
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&b[i]);
for(i=0;i<n;i++){
x=b[i];
while(x>0){
a[x%10]++;
x=x/10;
}
}
for(i=1,x=0;i<10;i++)
if(a[x]<a[i])
x=i;
printf("输入次数最多的数字=%d\n",x);
return 0;
}

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

#include<stdio.h>
int main(void)
{
int a[6][6],i,j,n,flog;
printf("请输入是几阶矩阵:\n");
scanf("%d",&n);
printf("请输入矩阵的数据:\n");
for(i=0;i<n;i++)
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
flog=1;
for(i=0;i<n;i++)
for(j=0;j<i;j++)
if(a[i][j]!=0)
flog=0;
if(flog)
printf("输出 YES\n");
else
printf("输出 NO\n");
return 0;
}

心得体会:这次作业算是按时完成了,第一题中做的时候用到了前面所学的交换语句,做的时候还很顺利;

第二题中用到了while语句,目前为止还不太会用,运行过程中出现了好多的错误,自己没有找出来,是在舍友的帮助下完成的这道题;

第三题中的for语句用的很多,在做题的时候思路不清晰,总是丢三落四的,这道题做的时间最长,最难受,而且本想着试试减少用printf,可是出现错误的次数太多,所以还是一步步的像刚开始那样写了,这样我读起来还是比较容易一点,还能读出来。

 

转载于:https://www.cnblogs.com/msjzyp321/p/11000621.html

北航数值分析大作业第八题是一个使用C语言实现的任务。具体情况可能因作业的要求而有所不同,以下是一个可能的解答方案简介。 首先,我们可以假设这个大作业是要求实现一个数值分析算法,比如求解非线性方程的根或求解微分方程等。在C语言中,常常使用数值方法(比如二分法、牛顿迭法等)来实现这样的算法。 在解决任务时,我会首先了解题目要求并设计程序的框架。这会涉及确定主要的函数和数据结构,并按照模块化的原则编写码。例如,可以定义一个函数用于实现数值方法,一个函数用于计算函数值,一个函数用于输入输出等。 然后,我会使用C语言编写码,根据题目要求编写相应的函数和算法。在实现数值方法时,需要注意算法的正确性和计算效率。可能需要进行迭计算,设置合适的收敛条件,以及处理边界情况。 完成编码后,我会进行测试和调试。测试包括使用不同的数值或方程进行验证,检查程序的正确性。如果出现错误或异常情况,我会使用调试工具分析问题并进行修正。 最后,我会整理码和注释,确保程序的可读性,并按照指定格式提交作业。同时,也会写一个实验报告,总结算法的原理、实现过程、结果等内容。 在解决这个大作业的过程中,我会尽力体现出良好的编程风格与规范,确保码的可维护性和可重用性。此外,我也会尽量通过阅读相关文献和资料,加深对数值分析和C语言的理解与应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值