三道C语言题目,求大神。

1.读入一个正整数n(1≤n≤6),再读入n 阶矩阵a,计算该矩阵除副对角线、最后一列和最后一行以外的所有元素之和(副对角线为从矩阵的右上角至左下角的连线)。
【输入输出样例1】(下划线部分表示输入)
Input n:4
Input array:
2 3 4 1
5 6 1 1
7 1 8 1
1 1 1 1
sum =35

2. (少于80 个字符),滤去所有的非十六进制字符后,组成一个新字符串(十六进制形式),然后将其转换为十进制数后输出。
【输入输出样例1】(下划线部分表示输入)
Input a string: 10
Hex=16

3.输入日期(年、月、日),输出它是该年的第几天。
【输入输出样例1】(下划线部分表示输入)
Input year, month, day: 1981 3 1
Days of year: 60

第一题

#include<stdio.h>

int main()
{
int a[7][7];
int n,i,j,sum=0;
printf("Input n:");
scanf("%d",&n);
puts("Input array:");
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
scanf("%d",&a[i][j]);
if(i==n-1||j==n-1||(i+j==n-1))continue;
sum+=a[i][j];

}
}
printf("sum =%d\n",sum);
return 0;
}

第二题,

#include<stdio.h>

int main()
{
char s[100];
int n=0,i;
printf("Input a string: ");
scanf("%s",s);
for(i=0;s[i];i++)
{
if(s[i]>='0'&&s[i]<='9')
{
n=n*16+s[i]-'0';
}
else if(s[i]>='A'&&s[i]<='F')
{
n=n*16+s[i]-'A'+10;
}
else if(s[i]>='a'&&s[i]<='f')
{
n=n*16+s[i]-'a'+10;
}
}
printf("Hex=%d\n",n);
return 0;
}

第三题

#include<stdio.h>

int main()
{
int i,j,k,year,month,day,MONTH[13]={0,31,28,31,30,31,30,31,31,30,31,30,31},D;

printf("Input year, month, day:" );
scanf("%d %d %d",&year,&month,&day);

if((year%4==0&&year%100!=0)||year%400==0)
{
MONTH[2]=29;
}
else MONTH[2]=28;
D=0;

for(i=1;i<month;i++)
{
D+=MONTH[i];
}
D=D+day;

printf("Days of year: %d\n",D);
return 0;
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-05-11
#include <stdio.h>
int main()
{
printf("Input n: ");
int n;
scanf("%d",&n);
printf("Input array:\n");
int a[10][10];
int i,j,s=0;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
scanf("sum=%d",&a[i][j]);
if(i!=n-1&&j!=n-1&&i!=n-j-1)
s=s+a[i][j];
}
printf("%d\n",s);
return 0;
}
2.#include <stdio.h>
#include <string.h>
int main()
{
printf("Input a string: ")
char a[100];
int i,n,s=0,j=1;
gets(a);
n=strlen(a);
for(i=n-1;i>=0;i--)
{
if(a[i]<='9'&&a[i]>='0')
{
s=s+(a[i]-'0')*j;
j=j*16;
}
else if(a[i]<='F'&&a[i]>='A')
{
s=s+(a[i]-'A'+10)*j;
j=j*16;
}
}
printf("Hex=%d\n",s);
}
3.
#include <stdio.h>
int main()
{
printf("Input year,month,day: ");
int p[2][12]={{31,28,31,30,31,30,31,31,30,31,30,31},{31,29,31,30,31,30,31,31,30,31,30,31}};
int a,b,c,t;
scanf("%d %d %d",&a,&b,&c);
if(a%4==0&&a%100!=0||a%400==0)
t=1;
else
t=0;
int s=0,i;
for(i=0;i<b-1;i++)
s=s+p[t][i];
s=s+c;
printf("Day of year: %d\n",s);
return 0;
}

三道C语言题目,求大神(用指针的方法)。
=c)j++;return s;}int main(int argv,char *argc[]){char s[300],c;printf("Input a string: ");fgets(s,300,stdin);printf("Input a char: ");c=getchar();fflush(stdin);printf("After deleted,the string is: %s\\n",delchar(s,c));return 0;}运行样例:(3)include "stdio...

C语言编程题目三道
include<stdio.h>void cal(int n1,int n2,char f);int main(){ int n1,n2; char f; printf("分别输入两个小于100整数及一个运算符号:\\n"); scanf("%d%d",&n1,&n2); getchar(); scanf("%c",&f); cal(n1,n2,f); return 0;}void cal(int n1,int ...

c语言求大神
题目解析如下:1、x[3][2] = {0}指的是定义一个 3x2 数组,并将数组的所有值初始化为 0。2、输入2 4 6之后,数组的值是x[3][2] = {{2, 0}, {4, 0}, {6, 0}}。3、分别输出x[0][0] == 2, x[0][1] == 0, x[1][0] == 4。以上是我对这道题目的解析...

c语言的题,求大神解答
题1:i++先进行表达式运算,最后再自增;++i先自增,再进行表达式运算,从结果上看最终都会导致i+1,所以结束后i,j,k都分别加1了。题2:C的写法就是强制类型转换,a1+a2的结果本来还是int,但是被强制转换成了char。A、B是普通的加法运算,D是可以说是赋值运算 ...

C语言,求大神指导。输入一个整数n,再输入n个值,输出最小值。
void main(){ int a[N]; \/\/定义一个数组来存储输入的n个数,N的值可修改 int n,i;int min; \/\/用来存储最小的那个值 scanf("%d",&n);printf("请输入%d个数",n);\/\/接收输入的n个数 for(i=0;i<n;i++){ scanf("%d",&a[i]);} \/\/求最小值 min=a[0];for(i=0;...

c语言,求大神
回答:max=a[0]; m=0; for(i=7;i>0;i++) { if(a[i]>a[0]) { max=a[i]; m=i; } } temp=a[7]; a[7]=max; a[i]=temp;

C语言求三道C语言题目,发邮箱291471241@qq.com,注明百度名称
第一题 include<iostream.h> using namespace std;int main(){int x,y,a,b,c;cout<<"请输入一个三位数:";cin>>x;if ((x<100)||(x>999)){ cout<<"error!";} c=x%10;b=x%100;b=b\/10;a=x\/100;y=100*c+10*b+a;if(c!=0){ cout<<"反向输出结果为:"<<y<<endl;} ...

C语言考试题求大神帮忙做
int iArrayA[2][3] = {2,4,6,8,10,12};for(int i=0;i < 3;i++){ for(int j=0;j < 2;j++){ cout<<iArrayA[j][i]<<endl;} } return 0;} \/\/第三题 include "stdafx.h"include <stdio.h> include <conio.h> int main ( ){ int iArrayA[5][1] = {0};int ...

c语言题目不会做 求大神
minute,hour,minu,finaltime;scanf("%d %d",&inittime,&minute);hour=inittime\/100;minu=inittime%100;hour+=minute\/60;minu+=minute%60;if(minu>=60){hour++;minu-=60;}else if(minu<0){hour--;minu+=60;}finaltime=hour*100+minu;printf("%d\\n",finaltime);return 0;} ...

谁帮我做下C语言的三道作业啊?很简单的指针问题
1..int MyStrcmp(char *s1,char *s2){ int range = 0;do { if (*s1 != *s2){ range = *s1 - *s2;break;} }while((*s1++ != 0) && (*s2++ != 0));return range;} 2..void fun(struct Student a[]){ struct Student tmp;int i = 0;int j = 0;for (j = 0; j...

相似回答