有两题,想了很久都想不到应该怎么写,哪位大侠帮帮忙啊? 200

1.有一个4*4的二维数组,将该数组各元素的值按从小到大的顺序按行逐列重新存储。二维数组的数,是自己随机输入。2.有一篇短文不超过500个字符,求其首字母为a的单词的个数... 1.有一个4*4的二维数组,将该数组各元素的值按从小到大的顺序按行逐列重新存储。二维数组的数,是自己随机输入。
2.有一篇短文不超过500个字符,求其首字母为a的单词的个数。短文也是自己随便输入,就是要统计个数。

我是新手啊,刚学了不久,最好不要用太深的语句,当然有详细说明更好,谢谢各位了。
侠胆熊虎兄,非常感谢你那么的热心,可是我也说了,我是初学者,你写的那些太深了,我指针都还没学呢。
展开
 我来答
好奇的布丁
2008-12-07 · TA获得超过272个赞
知道答主
回答量:31
采纳率:0%
帮助的人:0
展开全部
//(1)排序
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
int a[4][4] = {5,3,6,7,2,9,1,0,4,8,10,11,14,13,12,15};
int *p = &a[0][0];
int tmp = 0;
int i = 0;
int j = 0;
//排序
for(i = 1; i < 4*4; i++)
{
for(j = 0; j < 4*4 - i; j++)
{
if(p[j] > p[j+1])
{
tmp = p[j];
p[j] = p[j+1];
p[j+1] = tmp;
}
}
}
//输出结果
for(i = 0; i < 4; i++)
{
for(j = 0; j <4; j++)
{
printf("%4d ", a[i][j]);
}
printf("\n");
}
return 0;
}
//(2)首字母为a的单词个数
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
char str[] = "Do you love Firefox? We count on people like you to spread the word. I have a dog. about all. A car;";
char tag[] = " ?,.;";
int count = 0;
char *p = NULL;
for(p = strtok(str, tag);p;p=strtok(0,tag))
{
if(p[0]=='a') count++;
}
printf("首字母为a的单词个数是%d\n", count);
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ms_trY
2008-12-26 · TA获得超过198个赞
知道答主
回答量:38
采纳率:0%
帮助的人:0
展开全部
2、
#include<stdio.h>
int main()
{
int c,b=1,f=0,s=0; //b表示单词开头,f表示以a开头,s计数

while((c=getchar())!='\n')
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
好了我不注册了
2008-12-07 · 超过12用户采纳过TA的回答
知道答主
回答量:40
采纳率:0%
帮助的人:0
展开全部
全部运行通过
第一道题目:
#include "stdio.h"
void main()
{
int i,j,t, A[4][4],B[16];
printf("\n please enter 16 numbers:\n");
for (i=0;i<16;i++)
{
scanf("%d",&B[i]);
}
for (j=0;j<15;j++) //其泡法排序 分别循环
for (i=0;i<15-j;i++)
{
if(B[i]>B[i+1])
{
t=B[i];
B[i]=B[i+1];
B[i+1]=t;
}
}

for (j=0;j<16;j++)
A[0][j]=B[j];

for (i=0;i<4;i++)
{ for (j=0;j<4;j++)
printf("%4d",A[i][j]);
printf("\n");
}
}
第二道,
#include "stdio.h"
#include"string.h"
void main()
{
char string[500];
int i,j=0;
char c,d;
printf("plesae enter the sring:");
gets(string);
for(i=-1;(c=string[i])!='\0';i++) //判断单词
{
if(((d=string[i+1])=='a')||(d=string[i+1])=='A')//判断是否以A或者a开头
j=j+1;
}
printf("The number that the word begin with 'a' or 'A' is : %d\n",j);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ylhsz
2008-12-07 · 超过19用户采纳过TA的回答
知道答主
回答量:115
采纳率:0%
帮助的人:76.6万
展开全部
可能写的有点烦,输入输出自己调整吧

#include <stdio.h>

main()
{
int a[4][4]={0},i,j,temp,k,l,swap;

printf("input a[4][4]:");
for(i=0;i<4;i++)
for(j=0;j<4;j++)
{
scanf("%d",&a[i][j]);
}
getchar();

for(l=0;l<4;l++)
for(k=0;k<4;k++)
{
temp=a[l][k];
for(i=0;i<4;i++)
for(j=0;j<4;j++)
{
if(temp<a[i][j])
{
swap=temp;
temp=a[i][j];
a[i][j]=swap;
}
}
a[l][k]=temp;
}
for(i=0;i<4;i++)
for(j=0;j<4;j++)
{
printf("%d ",a[i][j]);
}

}

2.

#include <stdio.h>
#include <string.h>
main()
{
char a[500];
int i,num=0;

printf("input:");
gets(a);
if(a[0]=='a'||a[1]=='A')
num++;
for(i=1;i<500;i++)
{
if(a[i]=='\0')
break;
if(((a[i]>='a'&&a[i]<='z')||(a[i]>='A'&&a[i]<='Z'))||a[i]=='-')//考虑下连词符号
{
continue;
}
else
{
if(a[i+1]=='a'||a[i+1]=='A')
{
num++;
}
}

}
printf("%d",num);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
taboocat
2008-12-09
知道答主
回答量:60
采纳率:0%
帮助的人:0
展开全部
第一个用冒泡法就可以了
第二个判断字符串“空格+a”的个数(除第一个单词)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式