C语言的编程问题,求高手解答啊。新手很不明白。6月19号之前需要用到。急急急!!!我把财富全部给你。。

1.编写程序,由键盘输入10个整数;
(1)按从大到小的顺序重新排序后输出。
(2)输出10个整数的平均数。

2.设计两个矩阵A,B,实现矩阵相加运算,结果放入C,输出矩阵A、B、C。
3.输入用户登陆密码(你名字拼音首字母组成的字符串),重复输入进行确认。如两次输入的内容相同,则自己设计输出一组图形(如:扬辉三角、九九乘法表等),如两次输入的内容不同,则输出不能登录等信息。

1.
#include <stdio.h>
void main()
{
int a[10];
int i,j,t;
float avg=0;
printf("请输入10个整数:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(j=0;j<10;j++)
for(i=0;i<10-1-j;i++)
if(a[i]<a[i+1])
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
for(i=0;i<10;i++)
printf("%d ",a[i]);
for(i=0;i<10;i++)avg+=a[i];
avg=avg/10.0;
printf("\n平均值:%3.2f\n",avg);
}

2.
#include<stdio.h>
#define N 10
int a[N][N],b[N][N],c[N][N],n=4;

void main()
{
int i,j;
printf("请输入矩阵维数2-10:\n");
scanf("%d",&n);
printf("请输入矩阵A:\n");
for(i=0;i<n;i++)
{
printf("第%d行数据:\n",i+1);
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
}
printf("请输入矩阵B:\n");
for(i=0;i<n;i++)
{
printf("第%d行数据:\n",i+1);
for(j=0;j<n;j++)
scanf("%d",&b[i][j]);
}
for(i=0;i<n;i++)
for(j=0;j<n;j++)
c[i][j]=a[i][j]+b[i][j];

printf("矩阵A为:\n");
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
printf("%-4d",a[i][j]);
putchar('\n');
}
putchar('\n');
printf("矩阵B为:\n");
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
printf("%-4d",b[i][j]);
putchar('\n');
}
printf("矩阵C为:\n");
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
printf("%-4d",c[i][j]);
putchar('\n');
}
}

3.
#include <stdio.h>
#include <conio.h>
#include <string.h>
void table99()//输出9*9口诀
{
int i,j,result;
for (i=1;i<10;i++)
{
for(j=1;j<10;j++)
{
result=i*j;
printf("%d*%d=%-3d",i,j,result);//-3d表示左对齐,占3位
}
printf("\n");//每一行后换行
}
}

void main()
{
int i=0,j;
unsigned char str1[20],str2[20];
while(1)
{
printf("\n请输入用户登陆密码,按Enter键结束: ");
j=0;
while ((str1[j]=getch()) != '\r')
{
printf("%c", '*');
j++;
}
str1[j]='\0';
printf("\n请输入确认密码,按Enter键结束: ");
j=0;
while ((str2[j]=getch()) != '\r')
{
printf("%c", '*');
j++;
}
str2[j]='\0';
if(j>0 && strcmp(str1,str2)==0)
{
printf("\n登录成功!\n");
table99();
break;
}
else if(i<2) printf("\n输入有错误,不能登录,还有 %d 次机会\n",2-i);
i++;
if(i>=3)break;
}
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-06-08
看来深大学生很爱百度。。。。同求。。
第2个回答  2011-06-09
//(1)按从大到小的顺序重新排序后输出。
#include <stdio.h>
main()
{
int a[10],i,j,num;
printf("请依次输入10个数:\n");
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
}

for(i=0;i<10;i++)
{
for(j=0;j<j-i;j++)
{
if(a[j]<a[j+1])
{
num=a[i+1];
a[j+1]=a[j];
a[i]=num;
}
}
printf("%d,",a[i]);
}

getch();
}

//输出10个整数的平均数。
#include <stdio.h>
#define N 10
main()
{
int a[N],i,num=0;
printf("请依次输入10个数:\n");
for(i=0;i<N;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<N;i++)
{
printf("%d,",a[i]/10);
num=a[i]+num;
}
printf("\n这十个数的平均数等于:%d",num/10);
getch();
}

//设计两个矩阵A,B,实现矩阵相加运算,结果放入C,输出矩阵A、B、C。
#include <stdio.h>
#define N 3
#define M 3
main()
{
int i,j,g=0,a[N][M],r[N][M],y[N][M];
printf("a为3*3矩阵:\n");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
a[i][j]=g++;
printf("%-3d",a[i][j]);
}
printf("\n");
}
printf("================================\n");
printf("r为3*3矩阵:\n");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
r[i][j]=--g;
printf("%-3d",r[i][j]);
}
printf("\n");
}
printf("================================\n");
printf("y为3*3矩阵:\n");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
y[i][j]=a[i][j]+r[i][j];
printf("%-3d",y[i][j]);
}
printf("\n");
}
printf("================================\n");
getch();
}
第3个回答  2011-06-11
下列程序已经调好,按键显示电路可见:

//单片机:使用51系列兼容的即可;
//4×4矩阵键盘:接在P1口;
//两位数码显示器: P0口输出七段码,P2口输出位选码。
/========================================
//C语言程序如下。
/*************************************************************
* 文件名: KEY_LED.c
* 功能 : 对4×4矩阵键盘进行输出,在数码管后两位显示按键值。
**************************************************************/
#include <reg51.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char

uchar code table[10] = ;
uchar sec, t_50ms;
/**************************************************************
* 名称 : Delay_1ms()
* 功能 : 延时子程序,延时时间为 1ms * x
* 输入 : x (延时一毫秒的个数)
* 输出 : 无
***************************************************************/
void Delay_1ms(uint x)
{
uint i;
uchar j;
for(i = 0; i < x; i++) for(j = 0; j <= 148; j++);
}
/**************************************************************
* 名称: Display(uchar k)
* 功能: 将参数分成十位、个位分别显示
* 输入: k (键盘数值)
* 输出: P0口输出七段码,P2口输出位选码
***************************************************************/
void Display(uchar k)
{
P2 = 0; //消隐
P0 = table[k / 10];
P2 = 0x02; Delay_1ms(5); //显示5ms十位
P2 = 0; //消隐
P0 = table[k % 10];
P2 = 0x01; Delay_1ms(5); //显示5ms个位
}
/**************************************************************
* 名称: Keyscan()
* 功能: P1外接4×4按键, 按照扫描法读出键值
* 输出: 按键值0~15/如无键按下, 返回16
***************************************************************/
uchar Keyscan(void)
{
uchar i, j, temp, Buffer[4] = ;
for(j = 0; j < 4; j++) { //循环四次
P1 = Buffer[j]; //在P1高四位分别输出一个低电平
temp = 0x01; //计划先判断P1.0位
for(i = 0; i < 4; i++) { //循环四次
if(!(P1 & temp)) //从P1低四位,截取1位
return (i + j * 4); //返回取得的按键值
temp <<= 1; //判断的位,左移一位
} }
return 16; //判断结束,没有键按下,返回16
} //呵呵,实质性的语句不过8行,就是这么简练!
/**************************************************************
* 名称: GetKey()
* 功能: 读出按键、消抖、等待按键释放
* 输出: 按键值0~15/如无键按下, 返回16
***************************************************************/
uchar GetKey(void)
{
uchar Key_Temp1, Key_Temp2; //两次读出的键值
P1 = 0xff;
Key_Temp1 = Keyscan(); //先读入按键
if(Key_Temp1 == 16) return 16; //没有键按下,返回16
Display(sec); //用显示代替延时
Key_Temp2 = Keyscan(); //再读一次按键
if(Key_Temp1 != Key_Temp2) return 16; //不同,返回16
while(Keyscan() < 16) //等待按键释放
Display(sec); //等待期间显示
return Key_Temp1;
}
/**************************************************************
* 名称 : Main()
* 功能 : 主函数
***************************************************************/
void Main(void)
{
uchar Key_Value; //读出的键值
sec = 0;
TMOD = 0x01;
TH1 = (65536-50000)/256;
TL1 = (65536-50000)%256;
TR0 = 1;
ET0 = 1;
EA = 1;
while(1) {
Display(sec); //显示
if (GetKey() == 10) {
TR0 = 0;
while (TR0 == 0) {
Display(sec); //显示
Key_Value = GetKey();
if (Key_Value < 10) {
sec %= 10;
sec = sec * 10 + Key_Value;
}
if (Key_Value == 10) TR0 = 1;
} } }
}
/**************************************************************
* 名称 : T0_INT()
* 功能 : T0中断函数
***************************************************************/
void T0_INT() interrupt 1
{
TH1 = (65536-50000)/256;
TL1 = (65536-50000)%256;
t_50ms++;
if(t_50ms >= 20) {
t_50ms = 0;
sec++;
sec %= 60;
}
}
/*************************************************************/

C语言的编程问题,求高手解答啊。新手很不明白。6月19号之前需要用到...
printf("矩阵C为:\\n");for(i=0;i<n;i++){ for(j=0;j<n;j++)printf("%-4d",c[i][j]);putchar('\\n');} } 3.include <stdio.h> include <conio.h> include <string.h> void table99()\/\/输出9*9口诀 { int i,j,result;...

[急求助]C语言程序编程题,请高手帮忙解答下!
按照题目要求编写的程序如下(见图)

【急】小弟我刚学C语言 由于自学 无法理解变量的意思 望高手解答下
如果定义一个static f()中的z就不是放在栈区了,而是放在静态区。明白了么?学数据结构和编译原理就知道了。现在深究说明你喜欢动脑子,不错!

c语言高手进。 帮我编程下 。 小弟感激不尽~
int main(void){ int yearB=0, monthB=0, dayB=0;int yearE=0, monthE=0, dayE=0;int difYear, difMonth;\/\/ 输入日期1 printf("Input the beginning date(yyyy.mm.dd)\\n");scanf("%d.%d.%d", &yearB, &monthB, &dayB);\/\/ printf( "%d.%d.%d\\n", yearB, monthB, day...

C语言菜鸟求高手解答...
1. 第一个问题似乎是一个关于C语言条件判断的疑问。你需要明确表达你的问题,以便得到具体的解答。2. 在C语言中,`m++` 表示先使用变量 `m` 的值,然后将 `m` 的值加1。所以,表达式 `m++ > 5` 首先将 `m` 的值(初始为5)用于比较,然后 `m` 自增。3. 由于 `m` 的初始值是5,...

c语言 很纠结的问题 选择 求高手解答。
printf("%c\\n",s.c[0]); \/*【2】*\/ } 那么输出结果为380039和9;分别对应两题答案为B和B 因为把int改为short int后,s总体就4个字节 赋值后内存中为:39 00 38 00 所以,第一个输出s.b按照4个字节长的long型输出16进制形式,结果为380039 第二个输出还是第一个字节,字符形式,...

c语言编程问题,求高手解答(高分)
可以执行,只是以下几个小问题:一、第一行包含的文件不存在,这一行应该删除。二、定义了argc、argv两个变量没有使用,编译会有警告,可以删除他们或者不管,最好改为:int main()三、scanf输入n和k的时候,中间有个逗号分隔,这样输入的时候会麻烦,最好改为:scanf("%d%d",&n,&k);...

C语言判断题,球高手解答,急急
1、 在C中不可以使用goto语句。( 错 )【最好少用,用很多goto程序可读性降低】2、 常量是在整个程序运行过程中不能改变的量。( 对 )3、在C语言中不允许空语句存在。( 错 )【可以自行测试,写很多分号试试】4、在标准C中,编程必须加上注释。( 错 )【这个根据需要随个人自己】...

初学c语言应该要注意一些什么?
新手学习C语言,有很多误区,以一个学过C语言的人,给新手一些建议。 抛砖引玉,请前辈指出问题,发表意见,新手请注意后面的回复。 第一:一些概念。 C语言是一门程序设计语言,有一些标准,比较重要的是ANSI C(好像是C89)和C99。 数据结构包括逻辑结构和物理结构。逻辑结构是数据元素集合和定义在集合上的关系。物理...

一个C语言求整数的开方的问题!急求高手解答!
a=10000000000 -- 整型数 数值超界太多。要用 double 型。double a;

相似回答
大家正在搜